File:of Disk: Disks/MyPDP/m8-rka0-rkb0
(Source file text)
/ 011401 0005 UAC /GET THE CHAR 011402 7450 SNA 011403 5777 JMP I (EMREDY /IGNORE NULLS 011404 3021 DCA ZTEM1 /KEEP FOR FOLLWING TESTS 011405 4135 JMS GET 011406 0056 UCHAR / 011407 7510 SPA 011410 5225 JMP D6046X /THIS CHAR HAS NOT YET BEEN ECHOED. 011411 7041 CIA 011412 1021 TAD ZTEM1 /COMPARE THIS CHAR AND LAST INPUT CHAR 011413 0052 AND C177 /STRIP EXCESS BITS IN UAC 011414 7650 SNA CLA /IS THIS THE ECHO ? 011415 5256 JMP KHEXT2 /YES, IGNORE IT 011416 1420 TAD I X /SEE IF THE INPUT CHARACTER WAS A TAB 011417 1376 TAD (-211 011420 7640 SZA CLA /TAB ? 011421 5227 JMP D6046A /NO 011422 1021 TAD ZTEM1 /YES, MUST IGNORE SPACES ECHOED... 011423 1375 TAD (-240 011424 0052 AND C177 /CLEAR EXCESS BITS IN UAC 011425 7650 D6046X, SNA CLA /SPACE ? 011426 5777 JMP I (EMREDY /YES, DON'T ECHO ! DON'T CLEAR UCHAR ! 011427 4135 D6046A, JMS GET /NO, PUT IN OUTPUT BUFFER 011430 0005 UAC 011431 4774 JMS I (FILLQ 011432 0030 UBUFOUT /ONE WORD TO OUTPUT BUFFER 011433 7650 SNA CLA /CHAR ACCEPTED ? 011434 5251 JMP KHEXT /YES IFNDEF SINGL8 < 011435 4773 JMS I (EMINACT /NO, DEACTIVATE BG > 0002 O=BSIZE-1^POOLN%20^DGNTICK%36 /THIS IS FOR **2400 BAUD** IFZERO O <O=1> /2400BAUD=240 CHARS/SEC=36^10 OCTAL 0074 OO=BSIZE-1^POOLN%2%TTYMAX 011436 4002 D6046C, JMS MONITOR / 011437 0064 STALL 011440 0001 DGNTICK%12 / O 011441 4123 JMS SETBASE /RESTORE BASE IFNDEF SINGL8 < 011442 4135 JMS GET /GET COUNTER OF OUTPUT BUFFER 011443 0030 UBUFOUT 011444 1372 TAD (-OO /NEARLY EMPTY ? 011445 7700 SMA CLA 011446 5236 JMP D6046C / 011447 4771 JMS I (EMACTIV /ACTIVATE BG > 011450 5227 JMP D6046A /TRY AGAIN /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 127 011451 4770 KHEXT, JMS I (EMRUN /RUN OUTPUT WRITER 011452 0033 UWRTR 011453 4144 JMS PUT /CLEAR UCHAR 011454 0056 UCHAR / 011455 5777 JMP I (EMREDY 011456 1420 KHEXT2, TAD I X /IF THE CHAR WAS CR 011457 1064 TAD M215 011460 7650 SNA CLA /WE KNOW THAT A LF WAS ECHOED TOO 011461 1054 TAD C212 011462 3420 DCA I X /PUT IN UCHAR 011463 5777 JMP I (EMREDY /6031 TEST WHETHER THERE IS A NEW CHARACTER AVAILABLE DO6031, IFDEF SINGL8 < IFDEF SYRX02 < TAD (-DGNTICK^7 /SET COUNTER FOR 7 SECONDS > IFNDEF SYRX02 < TAD (-DGNTICK /SET COUNTER FOR 1 SECOND > JMS PUT /IN UTEM2 UTEM2 / > 011464 4135 S8WAIT, JMS GET / 011465 0025 UBUFIN 011466 7640 SZA CLA /EMPTY ? 011467 5767 JMP I (EMSKIP /NO, LET BG SKIP 011470 7240 ACM1 /TEST IF JMP .-1 IS FOLLOWING 011471 4766 JMS I (TSTJMP /IF THE CASE, WE HANG UP USER 011472 5777 JMP I (EMREDY /NO, NOT OBVIOUSLY WAITING IFDEF SINGL8 < JMS MONITOR /WAIT 7 SECONDS FOR INPUT, STALL /THEN DEACTIVATE THE BG DGNTICK%12 / JMS SETBASE / JMS GET / UTEM2 /GET COUNTER CLA /ONLY NEED X FOR SKIP ISZ I X /UPDATE COUNTER JMP S8WAIT / > 011473 4773 JMS I (EMINACT /MAKE HIM INACTIVE NOW 011474 4002 JMS MONITOR /EXIT UNTIL RUNNED BY INPUT READER 011475 1040 EXIT 011476 4123 EMSTRT, JMS SETBASE 011477 4771 JMS I (EMACTIV /ACTIVATE BG 011500 5777 JMP I (EMREDY /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 128 011501 4765 DO6036, JMS I (GETQ /FETCH CHAR FROM BUFFER 011502 0025 UBUFIN 011503 0364 AND (377 011504 4144 DO6032, JMS PUT / 011505 0005 UAC /STORE IN/CLEAR UAC 011506 4765 DO6030, JMS I (GETQ 011507 0025 UBUFIN 011510 4317 JMS ESCALT 011511 4144 JMS PUT 011512 0056 UCHAR /USED FOR SUPPRESSION OF BG-ECHO 011513 4763 JMS I (MTQ /BUMP INPUT BUFFER 011514 0025 UBUFIN 011515 5777 JMP I (EMREDY /EMPTY 011516 5777 JMP I (EMREDY /CLA;JMP EMREDY 011517 0000 ESCALT, 0 /ROUTINE TO CONVERT 233 IN $ 011520 1362 TAD (-233 / 011521 7450 SNA /ESCAPE ? 011522 1361 TAD ("$-233 /MAKE IT A $ 011523 1360 TAD (233 011524 5717 JMP I ESCALT 011525 4765 DO6034, JMS I (GETQ /LOOK INTO BUFFER 011526 0025 UBUFIN 011527 0364 AND (377 011530 7421 EMOR, MQL 011531 4135 JMS GET / 011532 0005 UAC 011533 7501 MQA /INCLUSIVE OR 011534 5757 JMP I (EMCLA /STORE IN AC /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 129 011535 4756 EMSPY, JMS I (EMFETCH /GET PARAMETER = FIELD 011536 0047 AND C70 011537 1061 TAD C6201 011540 3343 DCA .+3 011541 4135 JMS GET 011542 0005 UAC 011543 7402 HLT //CDF TO FIELD USER WANTS TO SEE 011544 3021 DCA ZTEM1 011545 1421 TAD I ZTEM1 011546 6211 CDF 10 011547 3420 DCA I X /BACK TO UAC 011550 5767 JMP I (EMSKIP /SKIP PARAMETER 011556 2200 011557 1362 011560 0233 011561 0011 011562 7545 011563 2661 011564 0377 011565 2721 011566 1227 011567 1207 011570 1273 011571 1246 011572 7704 011573 1255 011574 2600 011575 7540 011576 7567 011577 1213 1600 PAGE /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 130 /******************************************************* /*********** I N P U T R E A D E R *************** /******************************************************* /KHI IS A TASK DEDICATED TO READ CHARACTERS FROM AN /INPUT DEVICE AND PUT THEM INTO THE INPUT BUFFER. /IT ALSO TAKES CARE OF THE ECHO, BY PUTTING CHARS /INTO THE OUTPUT BUF AND STARTING THE OUTPUTWRITER . /ALSO IT LOOKS FOR CONTROL-B CHARACTERS IN THE INPUT. /^B WILL SET 'BGSTOP' AND THUS ESTABLISH ^B-MODE IN /WHICH KHI WILL ACCUMULATE ONE INPUT BUFFER OF COMMAND. /WHEN THE LINE IS CLOSED /WITH A CARRIAGE RETURN, KHI WILL CALL "CB" TO EXECUTE /THE COMMAND. IN CASE THE BGERR BIT GETS SET, IT WILL /CALL THE ERROR PRINTER "BE" AND ENTER ^B-MODE. /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 131 011600 4002 KHI0, JMS MONITOR /DETACHED BG, JUST STALL 011601 0064 STALL /AND TRY AGAIN LATER 011602 0012 DGNTICK /ONE SECOND IS AN EASY PACE 011603 4123 KHI11, JMS SETBASE /NECESSARY IN CASE OF TIMEOUT 011604 4135 JMS GET 011605 0025 UBUFIN 011606 7650 SNA CLA /ANY INPUT WAITING ? 011607 5214 JMP KHILP /NO 011610 4777 KHIRUN, JMS I (EMRUN /START THE EMULATOR 011611 0034 UCUR 011612 4777 KHI, JMS I (EMRUN 011613 0033 UWRTR 011614 1430 KHILP, TAD I BASE 011615 0042 AND C3 /(BGERR+SWPERR 011616 7640 SZA CLA /ERROR IN EMULATION OR SWP ? 011617 5776 JMP I (KHI8 /Y, GET INTO ^B-MODE 011620 4135 JMS GET 011621 0057 UKB 011622 7450 SNA /DETACHED BG ? 011623 5200 JMP KHI0 /YES, STALL, THEN TRY AGAIN 011624 3240 DCA KHINAM / 011625 4135 JMS GET /GET NUMBER OF CHARACTERS IN INPUT 011626 0025 UBUFIN /BUFFER. WE WILL USE THAT TO DETERMINE 011627 7110 CLL RAR / 011630 1071 TAD M4 /THE OPTIMUM TIMEOUT FOR THE NEXT 011631 7500 SMA /CHARACTER. THIS TIMEOUT IN FACT 011632 7200 CLA /DETERMINES THE ACTIVATION RATE FOR 011633 1043 TAD C4 /BACKGROUNDS. 011634 7041 CIA /DELAY=#CHARS*.1+.3 SECONDS 011635 1072 TAD M3 / 011636 4002 JMS MONITOR 011637 0024 CALL 011640 4044 KHINAM, K1TCBP 011641 5324 JMP KHI3 /INPUT HANDLER BUSY: STALL AND TRY 011642 7550 SPA SNA /IGNORE NULL'S 011643 5203 JMP KHI11 /TIMEOUT, ACTIVATE BG 011644 3021 DCA ZTEM1 /SAVE TEMP 011645 4123 JMS SETBASE /FOR WHICH BG? MAY HAVE CHANGED! /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 132 011646 1021 TAD ZTEM1 / 011647 1375 TAD (-203 /TEST FOR ^C 011650 7440 SZA / 011651 7001 IAC /TEST FOR ^B 011652 7440 SZA 011653 1374 TAD (202-217 /TEST FOR ^O 011654 7450 SNA 011655 5773 JMP I (KHI4 /CLEAR IN AND OUT BUFFERS, RETEST ^B 011656 1071 TAD M4 /TEST FOR ^S 011657 7450 SNA 011660 5334 JMP KHISTP /STOP OUTPUT WRITER 011661 1041 TAD C2 /TEST FOR ^Q 011662 7650 SNA CLA 011663 5772 JMP I (KHICON /RESTART OUTPUT WRITER 011664 4771 KHINRM, JMS I (KHTEST /CONTROL GROUP OR PRINTING GROUP ? 011665 7000 NOP /DON'T ECHO CONTROL CHAR 011666 7330 AC4000 /NON-ECHO MODE 011667 1021 TAD ZTEM1 /ENTER CHAR INTO INPUT BUF 011670 4770 JMS I (FILLQ /ONE WORD TO INPUT BUFFER 011671 0025 UBUFIN 011672 7650 SNA CLA 011673 5277 JMP KHECHO /OK 011674 4767 JMS I (KHIOUT /GIVE WARNING (BELL) 011675 0207 207 011676 5212 JMP KHI /BUFFER FULL, KEEP LISTENING 011677 4771 KHECHO, JMS I (KHTEST /ECHO OR NOT - THAT'S THE QUESTION. 011700 5210 JMP KHIRUN /CONTROL CHAR - DON'T ECHO, ACTIVATE BG 011701 5210 JMP KHIRUN /NON-ECHO MODE 011702 1021 TAD ZTEM1 011703 4766 JMS I (ESCALT /CONVERT 233 TO $ 011704 4767 JMS I (KHIOUT 011705 1021 TAD ZTEM1 011706 1064 TAD M215 011707 7440 SZA /CR IS VERY DELICATE 011710 5320 JMP KHI12 /NOT CR, JUST WAIT FOR MORE 011711 1054 TAD C212 /ADD A LF TO THE CR 011712 4767 JMS I (KHIOUT 011713 1430 TAD I BASE 011714 0365 AND (BGSTOP 011715 7640 SZA CLA /ARE WE IN ^B MODE ? 011716 5764 JMP I (KHI5 /YES, GO THERE 011717 5210 JMP KHIRUN /AND ACTIVATE THE BG /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 133 IFNDEF SINGL8 < 011720 1363 KHI12, TAD (215-233 011721 7650 SNA CLA /ESCAPE IS ANOTHER PET CHARACTER 011722 5210 JMP KHIRUN /RUSH THE BACKGROUND ACTIVE 011723 5212 JMP KHI /NO, DON'T PANIC > IFDEF SINGL8 < KHI12, CLA /ALWAYS START THE JMP KHIRUN /BACKGROUND IMMEDIATELY > 011724 4002 KHI3, JMS MONITOR 011725 0064 STALL 011726 0002 DGNTICK%5 011727 4123 JMS SETBASE 011730 4135 JMS GET 011731 0060 UTTY 011732 3240 DCA KHINAM 011733 5236 JMP KHINAM-2 011734 4135 KHISTP, JMS GET /STOP OUTPUT WRITER 011735 0033 UWRTR 011736 3341 DCA .+3 011737 4002 JMS MONITOR 011740 0034 STOP 011741 0000 0 011742 7402 HLT /NAME ? NOT ? FOUND ? 011743 4123 JMS SETBASE 011744 5214 JMP KHILP 011745 6203 EMTIME, CIF CDF 0 //YOU NEVER KNOW 011746 1762 TAD I (TIME+3 //FETCH # HOURS - 24 011747 0050 AND C77 //THE PROBABILITY IS: 2.5 E-9 011750 7002 BSW // 011751 1761 TAD I (TIME+2 //FETCH # MINUTES-60 011752 6213 CIF CDF 10 / 011753 1360 TAD (3074 /DECIMAL: 2460 011754 5757 JMP I (EMCLA /STORE IN USERS AC: HHH.HHH.MMM.MMM 011757 1362 011760 3074 011761 0274 011762 0275 011763 7762 011764 2027 011765 1000 011766 1517 011767 2134 011770 2600 011771 2000 011772 2065 011773 2056 011774 7763 011775 7575 011776 2143 011777 1273 2000 PAGE /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 134 /THIS ROUTINE DETERMINES WHETHER A CHAR IS IN THE CONTROL-GROUP /OR IN THE PRINTING GROUP: 211,215,233 AND 240 - 376. /IN FACT IT HAS THREE RETURNS: /1 - CHAR IS IN CONTROL-GROUP /2 - CHAR IS IN PRINTING GROUP, BUT ECHO IS DISABLED /3 - CHAR IS IN PRINTING GROUP AND ECHO IS ENABLED 012000 0000 KHTEST, 0 /SKIP IF 'PRINTING' CHAR. 012001 1021 TAD ZTEM1 012002 1377 TAD (-240 012003 7510 SPA 012004 5211 JMP KHT1 012005 1376 TAD (240-377 012006 7710 SPA CLA 012007 5220 JMP KHT2 /PRINTING GROUP; IS ECHO ENABLED ? 012010 5600 JMP I KHTEST /CONTROL-GROUP, TAKE FIRST RETURN 012011 1375 KHT1, TAD (240-211 012012 7440 SZA 012013 1071 TAD M4 /(211-215 012014 7440 SZA /CARRIAGE RETURN ? 012015 1374 TAD (215-233 012016 7640 SZA CLA /ESCAPE ? 012017 5600 JMP I KHTEST /CONTROL GROUP, TAKE FIRST RETURN 012020 2200 KHT2, ISZ KHTEST /PRINTING CHARACTER 012021 4135 JMS GET 012022 0045 UECHO /ECHO OR NOT ? 012023 7700 SMA CLA 012024 2200 ISZ KHTEST /ECHO, TAKE THIRD RETURN 012025 5600 JMP I KHTEST 012026 4123 KHIST, JMS SETBASE /START IN CONTROL/B MODE, R<CR> IN BUFFER 012027 1030 KHI5, TAD BASE 012030 4002 JMS MONITOR /CALL THE CTRLB TASK 012031 0024 CALL 012032 0602 "C^100+"B&3777 012033 5230 JMP .-3 /BUSY ? 012034 3021 DCA ZTEM1 012035 4123 JMS SETBASE 012036 1021 TAD ZTEM1 /LOOK WHAT W'VE GOT 012037 7450 SNA 012040 5245 JMP KHI51 /GO BACK TO NORMAL PROCESSING 012041 7710 SPA CLA / 012042 4334 JMS KHIOUT /ERROR 012043 0277 "? 012044 5312 JMP KHI21 /TRY AGAIN 012045 1430 KHI51, TAD I BASE 012046 0373 AND (-BGSTOP-LONG-1 012047 3430 DCA I BASE /CLEAR BGSTOP 012050 4772 JMS I (EMBSINT /TEL BS WE'RE IN THE GAME AGAIN 012051 4135 JMS GET /UNSTACK ECHO-SUPPRESS BIT 012052 0045 UECHO 012053 7104 CLL RAL 012054 3420 DCA I X 012055 5771 JMP I (KHIRUN /GO ! /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 135 012056 4770 KHI4, JMS I (CLRQ /CLEAR INPUT AND OUTPUT BUFFERS 012057 0025 UBUFIN 012060 4770 JMS I (CLRQ 012061 0030 UBUFOUT 012062 1430 TAD I BASE 012063 0367 AND (-LONG-1 /CLEAR LONG FOR GOOD RESPONSE 012064 3430 DCA I BASE 012065 4135 KHICON, JMS GET /RESTART OUTPUT WRITER 012066 0033 UWRTR 012067 3273 DCA .+4 012070 1021 TAD ZTEM1 /SAVE CHAR 012071 4002 JMS MONITOR 012072 0030 RESTRT 012073 0000 0 012074 7402 HLT /NAME ? NOT ? FOUND ? 012075 3021 DCA ZTEM1 /RESTORE CHAR 012076 4123 JMS SETBASE 012077 1021 TAD ZTEM1 / 012100 1366 TAD (-221 / 012101 7450 SNA /WAS IT ^Q ? 012102 5765 JMP I (KHILP /YES, IGNORE 012103 1045 TAD C17 / (221-202 012104 7640 SZA CLA /WAS IT ^B ? 012105 5764 JMP I (KHINRM /NO, EITHER ^C,^O : PUT IN BUFFER 012106 4334 JMS KHIOUT /YES, PRINT ^B 012107 0336 "^ 012110 4334 JMS KHIOUT 012111 0302 "B 012112 4135 KHI21, JMS GET /STACK HIS ECHO-SUPPRESS BIT 012113 0045 UECHO 012114 7510 SPA 012115 7110 CLL RAR 012116 3420 DCA I X 012117 1055 TAD C215 /PRINT CRLF B] 012120 4334 JMS KHIOUT 012121 1054 TAD C212 012122 4334 JMS KHIOUT 012123 4334 JMS KHIOUT 012124 0302 "B 012125 4334 JMS KHIOUT 012126 0276 276 /THE GREATER-THAN SYMBOL 012127 1430 TAD I BASE 012130 0363 AND (-BGSTOP-BGERR-SWPERR-LONG-1 012131 1362 TAD (BGSTOP /SET BGSTOP: WE ARE IN ^B-MODE 012132 3430 DCA I BASE 012133 5761 JMP I (KHI /START OUTPUT WRITER AND LOOK FOR COMMAND /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 136 012134 0000 KHIOUT, 0 /ROUTINE TO PUT ONE CHAR IN OUTPUT BUFFER 012135 7450 SNA /CHAR IN AC ? 012136 1734 TAD I KHIOUT /NO, GET PARAMETER 012137 4760 JMS I (FILLQ 012140 0030 UBUFOUT 012141 7300 CLA CLL /FULL ! ..... 012142 5734 JMP I KHIOUT 012143 4770 KHI8, JMS I (CLRQ /HERE IF ERROR OCCURRED 012144 0025 UBUFIN 012145 1030 TAD BASE 012146 4002 JMS MONITOR 012147 0024 CALL 012150 0505 "B^100+"E&3777 012151 5346 JMP .-3 012152 4123 JMS SETBASE 012153 5312 JMP KHI21 012160 2600 012161 1612 012162 1000 012163 6574 012164 1664 012165 1614 012166 7557 012167 7577 012170 2731 012171 1610 012172 1263 012173 6577 012174 7762 012175 0027 012176 7641 012177 7540 2200 PAGE /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 137 012200 0000 EMFETCH,0 /FETCH (PC+(AC)) FROM USER INSTR. FIELD 012201 3025 DCA ZTEM5 /SAVE AC 012202 4135 JMS GET / 012203 0003 UPC 012204 1025 TAD ZTEM5 012205 3025 DCA ZTEM5 /PC+AC 012206 2020 ISZ X /ADVANCE TO UFLDS 012207 1420 TAD I X /GET USERS FIELD BITS 012210 4777 JMS I (EMGETF /GET REAL FIELD (WON'T SWAP) 012211 4101 CDTOAC //THIS MEANS THAT INST.FLD IS IN 'XACCDF' 012212 1425 TAD I ZTEM5 //FETCH A WORD 012213 6211 CDF 10 / 012214 5600 JMP I EMFETCH /RETURN TO USER WITH WORD IN AC 012215 7307 EMHAND, AC0004 /TEST FOR JMP .+4 FOLLOWING 6000 012216 4776 JMS I (TSTJMP / 012217 5775 JMP I (EMERROR /IT WAS A RANDOM 6000 012220 1030 TAD BASE 012221 1374 TAD (UDTV-1 /POINTER TO UDTV 012222 3010 DCA AUTO10 012223 7301 AC0001 012224 4200 JMS EMFETCH /GET FUNCTION WORD 012225 3020 DCA X 012226 1020 TAD X 012227 0047 AND C70 012230 1373 TAD (-BGCORE^10 012231 7700 SMA CLA /LEGAL FIELD ? 012232 5775 JMP I (EMERROR /HE TRIES TO USE NON-EXISTENT MEMORY 012233 1020 TAD X 012234 3410 DCA I AUTO10 /STORE IN UDTV 012235 7326 AC0002 012236 4200 JMS EMFETCH /GET BUFFER ADDRESS 012237 3410 DCA I AUTO10 /STORE IN UDTV+1 012240 7325 AC0003 012241 4200 JMS EMFETCH /GET BLOCK NUMBER 012242 3410 DCA I AUTO10 /STORE IN UDTV+2 012243 5772 JMP I (EMHD /DISPATCH VIA HNDTAB /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 138 012244 4135 EMCHNL, JMS GET / 012245 0005 UAC /GET CHANNEL NUMBER 012246 7640 SZA CLA /SYS: ? 012247 5274 JMP NOTSYS /NO 012250 1374 TAD (UDTV-1 /SEE IF HE'S LOADING KBM OR CD. 012251 1030 TAD BASE 012252 3010 DCA AUTO10 012253 1410 TAD I AUTO10 012254 0047 AND C70 012255 1410 TAD I AUTO10 012256 7650 SNA CLA /FIELD 0, ADDRESS 0 ? 012257 1410 TAD I AUTO10 012260 1070 TAD M7 012261 7440 SZA /READING KBM ? 012262 1371 TAD (-51+7 012263 7640 SZA CLA /OR READING CD ? 012264 5274 JMP NOTSYS /NO, NO RELEASE 012265 4777 JMS I (EMGETF /GET FIELD 0 INCORE 012266 4101 CDTOAC // 012267 7332 AC2000 // 012270 0474 AND I C7777 //IS BATCH ACTIVE IN THE BG ? 012271 6211 CDF 10 012272 7650 SNA CLA / 012273 4770 JMS I (EMREL /NO, RELEASE HIS DEVICES 012274 4135 NOTSYS, JMS GET 012275 0005 UAC 012276 0042 AND C3 /GET CHANNEL NUMBER 012277 7104 CLL RAL / *2 012300 4135 JMS GET /FETCH TYPE WORD 012301 0036 UCHNL0+1 012302 0044 AND C7 /EXTRACT UNIT NUMBER 012303 7421 MQL 012304 1420 TAD I X 012305 7006 RTL /WRITE ENABLE TO LINK 012306 7620 SNL CLA /WRITE ENABLE ? 012307 5314 JMP NOCHCK /YES, NO NEED TO CHECK FOR WRITE 012310 4135 JMS GET 012311 0012 UDTV /GET FUNCTION WORD: READ ONLY ! 012312 7710 SPA CLA 012313 5361 JMP EMDSK1 /THEY ARE TRYING TO FOOL US 012314 4135 NOCHCK, JMS GET /GET FUNCTION WORD AGAIN 012315 0012 UDTV 012316 0067 AND C7770 012317 7501 MQA /ADD UNIT NUMBER 012320 3420 DCA I X 012321 1420 TAD I X 012322 4777 JMS I (EMGETF /LOAD TARGET FIELD AND !LOCK! IT 012323 7421 MQL /THATS THE REAL FIELD NUMBER 012324 4135 JMS GET /AND ONCE AGAIN THE FUNCTION WORD 012325 0012 CUDTV, UDTV 012326 0367 AND (7707 /ZERO FIELD BITS 012327 7501 MQA /OR-IN FIELD BITS 012330 3420 DCA I X /AND RESTORE /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 139 012331 4123 EMDSK0, JMS SETBASE /(IN CASE THIS IS A RETRY) 012332 4135 JMS GET 012333 0005 UAC 012334 0042 AND C3 012335 7104 CLL RAL / *2 012336 4135 JMS GET /GET TASK NAME 012337 0035 UCHNL0 012340 7450 SNA /CHANNEL OPEN ? 012341 5361 JMP EMDSK1 /NO, ERROR ! 012342 3347 DCA CHNDRV /NAME OF DRIVER TASK 012343 1030 TAD BASE 012344 1325 TAD CUDTV 012345 4002 JMS MONITOR 012346 0024 CALL 012347 0000 CHNDRV, 0 /GETS TASK NAME 012350 5331 JMP EMDSK0 /TASK BUSY, RETRY 012351 3354 DCA .+3 012352 4002 JMS MONITOR 012353 0044 WAIT 012354 0000 0 012355 7421 MQL /POSSIBLE ERROR CODE 012356 4123 JMS SETBASE 012357 7701 CLA MQA 012360 7640 SZA CLA 012361 7330 EMDSK1, AC4000 012362 5766 JMP I (EMCLA /STORE IN UAC AND QUIT 012366 1362 012367 7707 012370 1074 012371 7736 012372 0552 012373 7700 012374 0011 012375 0723 012376 1227 012377 0650 2400 PAGE /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 140 /************************************************************ /************* O U T P U T W R I T E R **************** /************************************************************ /KHO IS A TASK, DEDICATED TO TRANSPORT CHARACTERS FROM /THE TERMINAL OUTPUT BUFFER TO THE TERMINAL. /WHEN THE BUFFER IS EMPTY, IT STOPS AND MUST BE 'RUN' 012400 4002 KHO2, JMS MONITOR 012401 0064 STALL 012402 0005 DGNTICK%2 012403 4123 KHO, JMS SETBASE 012404 7200 KHO1, CLA /! 012405 4135 JMS GET 012406 0060 UTTY 012407 7450 SNA /DETACHED BG ? 012410 5200 JMP KHO2 /YES, WAIT TILL ATTACHED 012411 3223 DCA KHCALL /DRIVER NAME 012412 4135 JMS GET 012413 0030 UBUFOUT 012414 7650 SNA CLA /MORE CHAR IN THE BUFFER ? 012415 5232 JMP KHEXIT /NO, QUIT 012416 4777 JMS I (GETQ /GET NEXT CHAR 012417 0030 UBUFOUT /FROM OUTPUT BUFFER 012420 0376 AND (377 /ONLY 8 BITS 012421 4002 JMS MONITOR /AND PUT IT OUT 012422 0024 CALL 012423 4034 KHCALL, T1TCBP /NAME OF OUTPUT TASK 012424 5200 JMP KHO2 /OUTPUT TASK BUSY:LOOP 012425 4123 JMS SETBASE 012426 4775 KHLT, JMS I (MTQ /NOW REMOVE THE CHAR FROM THE BUFFER 012427 0030 UBUFOUT 012430 7610 SKP CLA /EMPTY, EXIT 012431 5204 JMP KHO1 012432 4002 KHEXIT, JMS MONITOR /HALT THE OUTPUT WRITER 012433 1040 EXIT /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 141 /CHANNEL ASSIGNMENT ROUTINE /THIS ROUTINE IS CALLED VIA A GIANT IOT(5) /PARAMETERS FROM THE BACKGROUND: / / CHANNEL NUMBER 0-3 / TASK NAME / DEVICE TYPE AND UNIT NUMBER 012434 7301 EMOPEN, AC0001 012435 4774 JMS I (EMFETCH /GET CHANNEL NUMBER 012436 3021 DCA ZTEM1 / 012437 7326 AC0002 012440 4774 JMS I (EMFETCH /GET DRIVER TASK NAME 012441 3022 DCA ZTEM2 / 012442 7325 AC0003 012443 4774 JMS I (EMFETCH /GET TYPE AND UNIT NUMBER 012444 3023 DCA ZTEM3 / 012445 1021 TAD ZTEM1 012446 0373 AND (7774 012447 7640 SZA CLA /MUST BE 0-3 012450 5772 JMP I (EMERROR 012451 1021 TAD ZTEM1 012452 7104 CLL RAL 012453 1030 TAD BASE 012454 1371 TAD (UCHNL0-1 /INDEX CHANNEL TABLE 012455 3010 DCA AUTO10 012456 1022 TAD ZTEM2 012457 3410 DCA I AUTO10 /ENTER TASK NAME IN WORD 0 012460 1023 TAD ZTEM3 012461 3410 DCA I AUTO10 /ENTER TYPE IN WORD 1 012462 5770 JMP I (EMCLA /CLEAR USER AC AND RETURN /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 142 IFDEF DKUSED < /THIS TASK PERFORMS THE CONVERSION BETWEEN A VIRTUAL DISK /REQUEST AND A TRUE PHYSICAL DISK REQUEST. IT MAY BE CALLED /AS AN ORDINARY BLOCKTRANSFER MODULE (WITHOUT QUEING) /AND WILL TRANSFORM THE CALLERS REQUEST ACCORDING TO THE /DEFINITIONS FOUND IN 'DSKTAB', WHICH SHOULD BE IN FIELD 1 AND /MUST BE SETUP BY THE POWERUP SEQUENCE. DSKTAB SHOULD CONTAIN /EIGHT ENTRIES OF FOUR WORDS EACH DESCRIBING A VIRTUAL DISK /LAYOUT OF EACH ENTRY: / /WORD 0: NAME OF HANDLER TASK /WORD 1: BITS 9-11=PHYSICAL UNIT NUMBER /WORD 2: RELATIVE BLOCK # 0 /WORD 3: LAST BLOCK+1 (PHYSICAL) / /IF THE TRANSFER GOES ACROSS THE BOUNDS OF THE VIRTUAL DISK, /THE TRANSFER IS NOT DONE AND A HARDERR STATUS IS RETURNED. 012463 7450 DK, SNA /CLOSE ? 012464 5357 JMP DKCLOSE 012465 3021 DCA ZTEM1 /POINTER TO USERS DTV 012466 1434 TAD I ZMYCDF /CDF TO USERS DTV, USED TO INITIALIZE 012467 3306 DCA DKCDF /CDF-USER ROUTINE 012470 1421 TAD I ZTEM1 /FETCH FUNCTION WORD 012471 0044 AND C7 /EXTRACT UNIT NUMBER 012472 3025 DCA ZTEM5 012473 1025 TAD ZTEM5 012474 7106 CLL RTL /MULTIPLY BY 4 012475 1367 TAD (DSKTAB-1 /INDEX IN DISK DESCRIPTOR TABLE 012476 6211 CDF 10 /DSKTAB IS IN FIELD 10 012477 3010 DCA AUTO10 / 012500 1410 TAD I AUTO10 /FIRST WORD CONTAINS TASK NAME 012501 7450 SNA /IS THIS UNIT DEFINED ? 012502 5356 JMP DKERROR /NO, ZERO NAME IS ILLEGAL 012503 3345 DCA DKNAME /NAME OF HANDLER TASK 012504 1410 TAD I AUTO10 /GET WORD 1 012505 3362 DCA DKDTV /BUILD A NEW DTV, THIS IS THE TRUE UNIT # /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 143 012506 7402 DKCDF, HLT /CDF TO CALLERS FIELD 012507 1421 TAD I ZTEM1 /GET REST OF USERS FUNCTION WORD 012510 0067 AND C7770 /MASK OF UNIT # 012511 1362 TAD DKDTV /GET TRUE UNIT # 012512 3362 DCA DKDTV /THIS IS THE FINAL FUNCTION WORD 012513 2021 ISZ ZTEM1 /BUMP POINTER TO USERS DTV 012514 1421 TAD I ZTEM1 /GET USERS BUFFER ADDRESS 012515 3363 DCA DKDTV+1 012516 2021 ISZ ZTEM1 012517 1421 TAD I ZTEM1 /GET VIRTUAL BLOCK # 012520 6211 CDF 10 012521 1410 TAD I AUTO10 /ADD OFFSET TO OBTAIN PHYSICAL BLOCK # 012522 3364 DCA DKDTV+2 /AND STORE IT IN DKDTV 012523 1362 TAD DKDTV /NOW CHECK IF WHOLE TRANSFER 012524 0060 AND C3700 /IS WITHIN THE RANGE. GET LENGTH 012525 7450 SNA 012526 7330 AC4000 012527 7002 BSW 012530 7011 IAC RAR /MAKE # BLOCKS 012531 7100 CLL 012532 1364 TAD DKDTV+2 /ADD START BLOCK # 012533 7041 CIA 012534 1410 TAD I AUTO10 /ADD MAXIMUM ALLOWED 012535 7620 SNL CLA /OVERFLOW ? 012536 5356 JMP DKERROR /YES, TRANSFER OUT OF RANGE 012537 4002 JMS MONITOR /NOW RESERVE A SLOT FOR THE USER TO WAIT /LET CALLER CONTINUE WITH SLOT # IN AC 012540 0061 RESERV RETURN CONTINUE 012541 3355 DCA DKSLT2 / CDTOIF 012542 1366 TAD (DKDTV /GET POINTER TO DKDTV 012543 4002 JMS MONITOR 012544 0024 CALL /CALL SYSTEM HANDLER 012545 2631 DKNAME, "S^100+"Y&3777 012546 5343 JMP .-3 /BUSY ? 012547 3352 DCA DKSLT1 012550 4002 JMS MONITOR 012551 0044 WAIT 012552 0000 DKSLT1, 0 012553 4002 JMS MONITOR /PASS STATUS TO USER 012554 1014 SIGNAL HALT CLEAR 012555 0000 DKSLT2, 0 /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 144 012556 1373 DKERROR,TAD (-HRDERR 012557 1074 DKCLOSE,TAD M1 / 012560 4002 JMS MONITOR 012561 1040 EXIT 012562 0000 DKDTV, ZBLOCK 3 /HERE THE TRANSFER VECTOR IS BUILD /END IFDEF DKUSED > 012566 2562 012567 7577 012570 1362 012571 0034 012572 0723 012573 7774 012574 2200 012575 2661 012576 0377 012577 2721 2600 PAGE /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 145 /THIS IS THE QUEUE HANDLING PACKAGE FOR THE MULTI8 /TERMINAL IO QUEUES. IT IS BASED ON THE USAGE OF A POOL OF /BLOCKS OF 2^N WORDS EACH. THESE BLOCKS ARE USED TO STORE /2^N-1 CHARACTERS AND A POINTER TO THE NEXT BLOCK IN THE QUEUE. /EACH QUEUE IS BASED ON A THREE-WORD DESCRIPTOR: / /COUNTER: CONTAINS THE NUMBER OF CHARACTERS IN THE QUEUE /READP: POINTER TO THE START OF THE FIRST BLOCK IN QUEUE /WRITEP: POINTER TO THE LAST BLOCK IN THE QUEUE / /WHEN THE QUEUE IS FILLED, ADDITIONAL BLOCKS MAY BE LINKED TO /IT. THESE BLOCKS ARE OBTAINED FROM A QUEUE AT LOCATION 'FREE'. /ON READING CHARACTERS FROM THE QUEUE, EMPTY BLOCKS ARE RETURNED TO /THE FREE LIST, EXCEPT FOR THE LAST BLOCK, WHICH IS NEVER RELEASED. /THE PACKAGE CONTAINS 4 ROUTINES: / /FILLQ: ENTERS ONE CHARACTER IN THE QUEUE /MTQ: REMOVES ONE CHAR FROM THE QUEUE /GETQ: GETS THE NEXT CHARACTER FROM THE QUEUE, WITHOUT / REMOVING IT /CLRQ: ZERO'S A QUEUE / / ***** NOTE ***** / ONLY FILLQ AND MTQ ARE CROSS-FIELD CALLABLE / 2661 XCOUNT=MTQ 2721 XREADP=GETQ 2731 XWRITEP=CLRQ IFZERO BGMAX-1 < BSIZE=40 FMASK=C37 POOLN=2 > IFZERO BGMAX-2 < BSIZE=40 FMASK=C37 POOLN=4 > IFZERO BGMAX-3 < 0020 BSIZE=20 /BLOCK SIZE, MUST BE 2^N 0045 FMASK=C17 /ADDRESS FOR MASK 0010 POOLN=10 /NUMBER OF BLOCKS IN THE POOL > IFZERO BGMAX-4 < BSIZE=20 FMASK=C17 POOLN=20 > IFZERO BGMAX-5 < BSIZE=10 FMASK=C7 POOLN=40 > IFNZRO 5-BGMAX&4000 < BSIZE=10 FMASK=C7 POOLN=100 > /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 146 012600 0000 FILLQ, 0 /ENTER WITH CHAR IN AC 012601 7421 MQL /STORE FOR A WHILE 012602 1200 TAD FILLQ /CALL COMMON SETUP CODE 012603 4361 JMS SETUP / 012604 7001 IAC / 012605 3331 DCA XWRITEP / 012606 1731 TAD I XWRITEP /SETUP POINTER TO STORE 012607 3020 DCA X /THE CHARACTER 012610 7701 CLA MQA /STORE CHAR IN THE BUFFER 012611 3420 DCA I X / 012612 7301 AC0001 / 012613 1020 TAD X /GET POINTER TO NEXT LOCATION 012614 0045 AND FMASK / 012615 7640 SZA CLA /PAST END OF BLOCK ? 012616 5250 JMP FILLQ1 /NO, NO PROBLEMS THIS TIME 012617 1121 TAD FRECNT /GET NUMBER OF FREE BLOCKS IFZERO BSIZE-10 < CLL RTL;RAL > 012620 7106 IFZERO BSIZE-20 < CLL RTL;RTL > 012621 7006 IFZERO BSIZE-40 < CLL RTL;RTL;RAL > 012622 7041 CIA / 012623 1121 TAD FRECNT /1 PLACE IN BLOCKLET IS POINTER 012624 1661 TAD I XCOUNT /SEE IF WE HIT THE MAXIMUM ALLOWED 012625 7700 SMA CLA /TOO MUCH ? 012626 5256 JMP FERROR /YES, ERROR RETURN 012627 1020 TAD X /YES, BACKUP TO BEGIN OF BLOCK 012630 0377 AND (-BSIZE / 012631 3020 DCA X / 012632 1120 TAD FREE /POINTER TO FIRST BLOCK ON FREE CHAIN 012633 7450 SNA /FREE QUEUE EMPTY ? 012634 5256 JMP FERROR /YES, SORRY 012635 3420 DCA I X /NO, PUT ADDRESS OF FREE BLOCK IN LAST 012636 1120 TAD FREE /BLOCK AND PREPARE X FOR WRITEP 012637 3020 DCA X / 012640 1520 TAD I FREE / 012641 3361 DCA SETUP /POINTER TO NEXT FREE BLOCK 012642 3520 DCA I FREE /ZERO LINK OF NEW BLOCK 012643 1361 TAD SETUP /GET POINTER TO NEXT FREE BLOCK 012644 3120 DCA FREE /AND SET FREE ACCORDINGLY 012645 7240 ACM1 012646 1121 TAD FRECNT /REDUCE COUNTER FOR FREE QUEUE 012647 3121 DCA FRECNT / 012650 7301 FILLQ1, AC0001 / 012651 1020 TAD X /NOW USE X TO 012652 3731 DCA I XWRITEP /SET NEW WRITE POINTER 012653 2661 ISZ I XCOUNT /INCREMENT CHARACTER COUNT 012654 7421 MQL /RETURN WITH AC=0 012655 2200 FNORML, ISZ FILLQ /TAKE OK RETURN 012656 7701 FERROR, CLA MQA /FOR ERROR, RETURN WITH CHAR IN AC 012657 6203 FRETRN, CDF CIF 012660 5600 JMP I FILLQ /THATS IT /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 147 012661 0000 MTQ, 0 /READ ONE CHAR FROM THE QUEUE 012662 1261 TAD MTQ /CALL COMMON SETUP CODE 012663 4361 JMS SETUP / 012664 3321 DCA XREADP / 012665 1721 TAD I XREADP /FETCH THE CURRENT CHARACTER 012666 3020 DCA X / 012667 1420 TAD I X /THERE IT IS 012670 7421 MQL /STORE AWAY FOR LATER 012671 3420 DCA I X /CLEAR BUFFER 012672 1661 TAD I XCOUNT /CAN WE ADVANCE THE POINTER ? 012673 7650 SNA CLA / ? 012674 5257 JMP FRETRN /NO, GO BACK WITH NULL 012675 2721 ISZ I XREADP /ADVANCE READ POINTER 012676 1721 TAD I XREADP /SEE IF W'RE PAST THE END OF THE BLOCK 012677 0045 AND FMASK 012700 7640 SZA CLA /PAST END OF BLOCK ? 012701 5315 JMP MTQ1 /NO 012702 1721 TAD I XREADP /YES, BACKUP POINTER TO BEGIN OF BLOCK 012703 1377 TAD (-BSIZE / 012704 3020 DCA X / 012705 1420 TAD I X /GET ADDRESS OF NEXT BLOCK 012706 7001 IAC /ADVANCE POINTER TO FIRST CHAR POSITION 012707 3721 DCA I XREADP /ADDRESS OF NEW BLOCK 012710 1120 TAD FREE / 012711 3420 DCA I X / 012712 1020 TAD X 012713 3120 DCA FREE / 012714 2121 ISZ FRECNT /INCREMENT NUMBER OF FREE BLOCKS 012715 7240 MTQ1, ACM1 /BACKUP CHARACTER COUNT 012716 1661 TAD I XCOUNT 012717 3661 DCA I XCOUNT / 012720 5255 JMP FNORML /AND RETURN WITH CHAR IN AC 012721 0000 GETQ, 0 /FETCH THE CURRENT CHARACTER 012722 7301 AC0001 /READP=UBUFXXX+1 012723 1721 TAD I GETQ /GET PARAMETER 012724 2321 ISZ GETQ /FOR NORMAL RETURN 012725 1030 TAD BASE / 012726 4114 JMS DEFER /GET POINTER TO CHARACTER 012727 4114 JMS DEFER /GET THE CHARACTER 012730 5721 JMP I GETQ /RETURN WITH CHAR IN AC /M3.PA 17-JUN-80 PAL8-V40A 26-JAN-86 PAGE 148 012731 0000 CLRQ, 0 /ZERO A QUEUE 012732 1331 TAD CLRQ 012733 4361 JMS SETUP /CALL COMMON SETUP CODE 012734 3321 DCA XREADP / 012735 1721 CLRQ1, TAD I XREADP /MAKE POINTER TO FIRST BLOCK IN QUEUE 012736 0377 AND (-BSIZE 012737 4114 JMS DEFER /GET POINTER TO NEXT BLOCK 012740 7450 SNA /NIL, THEN THIS IS A ONE-BLOCK QUEUE 012741 5351 JMP CLRQ2 /YES, DON'T DEALLOCATE THE LAST BLOCK 012742 3721 DCA I XREADP /STORE POINTER TO NEXT BLOCK 012743 1120 TAD FREE / 012744 3420 DCA I X /LINK OLD BLOCK TO FREE 012745 1020 TAD X / 012746 3120 DCA FREE /AND SET SET FREE TO THIS ONE 012747 2121 ISZ FRECNT /RETURN 1 BLOCK TO FREE QUEUE 012750 5335 JMP CLRQ1 /GO ON FOR MORE BLOCKS 012751 2020 CLRQ2, ISZ X /SET READP TO FIRST CHARACTER POSITION 012752 1020 TAD X /POINTER TO FIRST BLOCK 012753 3721 DCA I XREADP /NEW READP 012754 2321 ISZ XREADP /ADVANCE TO WRITEP 012755 1020 TAD X / 012756 3721 DCA I XREADP /SET WRITEP=READP 012757 3661 DCA I XCOUNT /SET COUNT=0 012760 5257 JMP FRETRN /RETURN 012761 0000 SETUP, 0 /SETUP POINTERS FOR QUEUE ROUTINES 012762 3200 DCA FILLQ /ALL RETURNS THROUGH FILLQ 012763 1436 TAD I ZMYCDIF /GET RETURN CIF CDF 012764 3257 DCA FRETRN /PREPARE RETURN TO USER FIELD 012765 1600 TAD I FILLQ /GET PARAMETER 012766 2200 ISZ FILLQ / 012767 1776 TAD I (BASE /ADD HIS (!) BASE 012770 6211 CDF 10 /SELECT THE FIELD OF BUFFERS 012771 3261 DCA XCOUNT /POINTER TO COUNT 012772 1261 TAD XCOUNT / 012773 7001 IAC /POINTER TO READP IN AC 012774 5761 JMP I SETUP 012776 0030 012777 7760 3000 PAGE /END IFNZRO BGMAX > /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 149 /M4.PA 9-JUN-80 /**UASEM VERSION** /**************************************************** /********* D A T A S T R U C T U R E S ******** /**************************************************** 3000 DOTF10=. 0000 FIELD 0 3200 *DOTF00 /THE DISK QUEUE, MUST START AT PAGE BOUND: 003200 0000 SYSQ, ZBLOCK SYSMAX^2 IFNZRO SYSQ&177 <SYQERR,XERROR> IFDEF TAPE < /TABLE WHICH HOLDS CURRENT TAPE POSITION 003220 0000 TAPETB, ZBLOCK TAPE /FOR EACH UNIT NUMBER > IFDEF COMLNG < COMMON, ZBLOCK COMLNG /BLOCK OF LOCATIONS, /DIFFERENT FOR ANY INSTALLATION > 003222 0000 HRDLST, ZBLOCK 1^2 /EVENT 0 FOR BREAK CHARACTER DETECTION 003224 0000 ZBLOCK INTDEV-1^2 /CONNECTABLE SKIPCHAIN ENTRIES 003232 0000 ZBLOCK SKPDEV-INTDEV^2 /NON-CONNECTABLE SKIPCHAIN ENTRIES ZBLOCK MAXDEV-SKPDEV^2 /ENTRIES EG. FOR TERMINAL MUX. 003240 0000 ZBLOCK SOFSLOT^2 /ALLOCATABLE SOFTWARE EVENTS IFNZRO BGMAX < 003310 0000 ZBLOCK 1^2 /ONE SLOT FOR THE BG SCHEDULER 003312 0000 ZBLOCK BGMAX^2 /ONE SLOT FOR EACH BG 0033 BSSLOT=MAXSLOT / > 003320 0000 CLRTAB, ZBLOCK INTDEV-1 /HOLDS CLEAR-IOT'S /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 150 /THE COREMAP CONTAINS ONE WORD FOR EVERY MEMORY PAGE IN THE /FOREGROUND. THE FOLLOWING ENCODING APPLIES: /0 FREE PAGE /-3 OCCUPIED BY RESIDENT CODE OR OTHERWISE UNUSABLE /-2 ALLOCATED BUFFER PAGE, BUT NOT LAST PAGE OF BUFFER /-1 LAST PAGE OF ALLOCATED BUFFER /NEG. TCBP OF EXTERNAL TASK LOADED HERE /POS. -TCBP OF EXTERNAL TASK THAT HAS 'RELEASED' ITS MEMORY /THE PROPER CONTENTS OF THIS MAP IS ONLY KNOWN DURING PASS 2. /SO DURING PASS 1 WE JUST RESERVE THE REQUIRED AMOUNT OF MEMORY IFNZRO PASS1 < CORMAP, *FIELDS^40+. / > IFZERO PASS1 < /FIRST MAKE SURE THAT ALL ENFXX'S ARE AT A PAGE BOUND: 4600 ENDF00=ENDF00+177&7600 4200 ENDF10=ENDF10+177&7600 0200 ENDF20=ENDF20+177&7600 0200 ENDF30=ENDF30+177&7600 0200 ENDF40=ENDF40+177&7600 0200 ENDF50=ENDF50+177&7600 0200 ENDF60=ENDF60+177&7600 0200 ENDF70=ENDF70+177&7600 /THE MONITOR AREA IN FIELD 0: 003323 7775 IFNZRO ENDF00&200 <-3> 003324 7775 IFNZRO ENDF00&400 <-3;-3> 003325 7775 IFNZRO ENDF00&1000 <-3;-3;-3;-3> IFNZRO ENDF00&2000 <-3;-3;-3;-3;-3;-3;-3;-3> 003326 7775 IFNZRO ENDF00&4000 <-3;-3;-3;-3;-3;-3;-3;-3 003327 7775 003330 7775 003331 7775 003332 7775 003333 7775 003334 7775 003335 7775 003336 7775 -3;-3;-3;-3;-3;-3;-3;-3> 003337 7775 003340 7775 003341 7775 003342 7775 003343 7775 003344 7775 003345 7775 /THE EMPTY AREA IN FIELD 0: 003346 0000 ZBLOCK CORMAP+37-. /DON'T TOUCH THE LAST PAGE (OS8): 003362 7775 -3 /NOW FOR FIELD 1: IFZERO FIELDS-2&4000 < 003363 7775 IFNZRO ENDF10&200 <-3> IFNZRO ENDF10&400 <-3;-3> IFNZRO ENDF10&1000 <-3;-3;-3;-3> IFNZRO ENDF10&2000 <-3;-3;-3;-3;-3;-3;-3;-3> /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 150-1 003364 7775 IFNZRO ENDF10&4000 <-3;-3;-3;-3;-3;-3;-3;-3 003365 7775 003366 7775 003367 7775 003370 7775 003371 7775 003372 7775 003373 7775 003374 7775 -3;-3;-3;-3;-3;-3;-3;-3> 003375 7775 003376 7775 003377 7775 003400 7775 003401 7775 003402 7775 003403 7775 /FREE AREA IN FIELD 1: 003404 0000 ZBLOCK CORMAP+77-. 003422 7775 -3 /LAST PAGE IS FOR OS/8 /NOW FOR FIELD 2: IFZERO FIELDS-3&4000 < 003423 7775 IFNZRO ENDF20&200 <-3> IFNZRO ENDF20&400 <-3;-3> IFNZRO ENDF20&1000 <-3;-3;-3;-3> IFNZRO ENDF20&2000 <-3;-3;-3;-3;-3;-3;-3;-3> IFNZRO ENDF20&4000 <-3;-3;-3;-3;-3;-3;-3;-3 -3;-3;-3;-3;-3;-3;-3;-3> 003424 0000 ZBLOCK CORMAP+140-. IFDEF SYRL01 <*.-1;-3 /RETAIN SYSTEM HANDLER FOR RL01 > IFDEF SYRX02 <*.-1;-3 /RETAIN SYSTEM HANDLER FOR RX02 > /NOW FOR FIELD 3: IFZERO FIELDS-4&4000 < IFNZRO ENDF30&200 <-3> IFNZRO ENDF30&400 <-3;-3> IFNZRO ENDF30&1000 <-3;-3;-3;-3> IFNZRO ENDF30&2000 <-3;-3;-3;-3;-3;-3;-3;-3> IFNZRO ENDF30&4000 <-3;-3;-3;-3;-3;-3;-3;-3 -3;-3;-3;-3;-3;-3;-3;-3> ZBLOCK CORMAP+200-. /NOW FOR FIELD 4: IFZERO FIELDS-5&4000 < IFNZRO ENDF40&200 <-3> IFNZRO ENDF40&400 <-3;-3> IFNZRO ENDF40&1000 <-3;-3;-3;-3> IFNZRO ENDF40&2000 <-3;-3;-3;-3;-3;-3;-3;-3> IFNZRO ENDF40&4000 <-3;-3;-3;-3;-3;-3;-3;-3 -3;-3;-3;-3;-3;-3;-3;-3> ZBLOCK CORMAP+240-. /NOW FOR FIELD 5: IFZERO FIELDS-6&4000 < IFNZRO ENDF50&200 <-3> IFNZRO ENDF50&400 <-3;-3> IFNZRO ENDF50&1000 <-3;-3;-3;-3> IFNZRO ENDF50&2000 <-3;-3;-3;-3;-3;-3;-3;-3> IFNZRO ENDF50&4000 <-3;-3;-3;-3;-3;-3;-3;-3 /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 150-2 -3;-3;-3;-3;-3;-3;-3;-3> ZBLOCK CORMAP+300-. /NOW FOR FIELD 6: IFZERO FIELDS-7&4000 < IFNZRO ENDF60&200 <-3> IFNZRO ENDF60&400 <-3;-3> IFNZRO ENDF60&1000 <-3;-3;-3;-3> IFNZRO ENDF60&2000 <-3;-3;-3;-3;-3;-3;-3;-3> IFNZRO ENDF60&4000 <-3;-3;-3;-3;-3;-3;-3;-3 -3;-3;-3;-3;-3;-3;-3;-3> ZBLOCK CORMAP+340-. /NOE FOR FIELD 7: IFZERO FIELDS-10&4000 < IFNZRO ENDF70&200 <-3> IFNZRO ENDF70&400 <-3;-3> IFNZRO ENDF70&1000 <-3;-3;-3;-3> IFNZRO ENDF70&2000 <-3;-3;-3;-3;-3;-3;-3;-3> IFNZRO ENDF70&4000 <-3;-3;-3;-3;-3;-3;-3;-3 -3;-3;-3;-3;-3;-3;-3;-3> ZBLOCK CORMAP+400-. / >>>>>>> /END OF PASS2 CONDITION > /NOW COMES THE END OF THE MAP. FOR PROPPER OPERATION OF /THE ROUTINE HOLE, THE MAP SHOULD END IN -3;0: 003463 7775 -3 003464 0000 MAPEND, 0 /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 151 003465 0000 NAMLST, ZBLOCK MAXNAM+17 003554 0000 LASTNM, 0 /ONE LOC EXTRA FOR SEARCH LOOP 4000 IFZERO .&4000 <*4000 /TCBP'S MUST ALWAYS BE NEGATIVE > TCBTAB, /THE TABLE OF TASK CONTROL BLOCKS 004000 2711 "T^100+"I&3777;1;DGNTIM;0 004001 0001 004002 3112 004003 0000 004004 0000 0;CDF+00%2;0;0 004005 3100 004006 0000 004007 0000 004010 2631 "S^100+"Y&3777;0;SY;0 004011 0000 004012 2600 004013 0000 004014 0000 0;CDF+00%2;0;0 004015 3100 004016 0000 004017 0000 IFDEF SYRX02 < "S^100+"Z&3777;0;SZ;0 0;CDF+00%2;0;0 / > IFDEF SYRL01 < /FAKE SY FOR RLC "S^100+"C&3777;0;SC;0 0;CDF+00%2;0;0 / > IFDEF DKUSED < 004020 0713 "D^100+"K&3777;0;DK;0 004021 0000 004022 2463 004023 0000 004024 0010 10;CDF 00%2;0;0 / > 004025 3100 004026 0000 004027 0000 0000 IFNDEF KL8XX <TT1LST=0;KK1LST=0> 0000 004030 2661 "T^100+"1&3777;0;TT;TT1LST 004031 0000 004032 0200 004033 0000 004034 0010 T1TCBP, 10;CDF 00%2;0;0 004035 3100 004036 0000 004037 0000 004040 1561 "K^100+"1&3777;0;KK;KK1LST /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 151-1 004041 0000 004042 0315 004043 0000 004044 0010 K1TCBP, 10;CDF+00%2;0;0 004045 3100 004046 0000 004047 0000 IFDEF KL8E2 < "T^100+"2&3777;0;TT;TT2LST;10;CDF 00%2;0;0 "K^100+"2&3777;0;KK;KK2LST;10;CDF 00%2;0;0 / > IFDEF KL8E3 < "T^100+"3&3777;0;TT;TT3LST;10;CDF 00%2;0;0 "K^100+"3&3777;0;KK;KK3LST;10;CDF 00%2;0;0 / > IFDEF KL8E4 < "T^100+"4&3777;0;TT;TT4LST;10;CDF 00%2;0;0 "K^100+"4&3777;0;KK;KK4LST;10;CDF 00%2;0;0 / > IFDEF KL8E5 < "T^100+"5&3777;0;TT;TT5LST;10;CDF 00%2;0;0 "K^100+"5&3777;0;KK;KK5LST;10;CDF 00%2;0;0 / > IFDEF KL8E6 < "T^100+"6&3777;0;TT;TT6LST;10;CDF 00%2;0;0 "K^100+"6&3777;0;KK;KK6LST;10;CDF 00%2;0;0 / > IFDEF KL8E7 < "T^100+"7&3777;0;TT;TT7LST;10;CDF 00%2;0;0 "K^100+"7&3777;0;KK;KK7LST;10;CDF 00%2;0;0 / > IFDEF KL8A1 < "T-"K^100+KL8NAM+0;0;TT;TY0LST;10;CDF%2;0;0 KL8NAM+0;0;KK;KB0LST;10;CDF%2;0;0 "T-"K^100+KL8NAM+1;0;TT;TY1LST;10;CDF%2;0;0 KL8NAM+0;0;KK;KB1LST;10;CDF%2;0;0 "T-"K^100+KL8NAM+2;0;TT;TY2LST;10;CDF%2;0;0 KL8NAM+0;0;KK;KB2LST;10;CDF%2;0;0 "T-"K^100+KL8NAM+3;0;TT;TY3LST;10;CDF%2;0;0 KL8NAM+0;0;KK;KB3LST;10;CDF%2;0;0 /END IFDEF KL8A1 > /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 152 IFNZRO BGMAX < 004050 1361 KHIBG1, "I^100+"1&3777;1;KHIST ;BG1;10;CDF 00%2;0;0 004051 0001 004052 2026 004053 3707 004054 0010 004055 3100 004056 0000 004057 0000 004060 2161 KHOBG1, "O^100+"1&3777;0;KHO ;BG1;10;CDF 00%2;0;0 004061 0000 004062 2403 004063 3707 004064 0010 004065 3100 004066 0000 004067 0000 004070 0761 EMBG1, "E^100+"1&3777;1;EMSTRT ;BG1;10;CDF 00%2;0;0 004071 0001 004072 1476 004073 3707 004074 0010 004075 3100 004076 0000 004077 0000 IFZERO BGMAX-2&4000 < 004100 1362 KHIBG2, "I^100+"2&3777;1;KHIST ;BG2;10;CDF 00%2;0;0 004101 0001 004102 2026 004103 3775 004104 0010 004105 3100 004106 0000 004107 0000 004110 2162 KHOBG2, "O^100+"2&3777;0;KHO ;BG2;10;CDF 00%2;0;0 004111 0000 004112 2403 004113 3775 004114 0010 004115 3100 004116 0000 004117 0000 004120 0762 EMBG2, "E^100+"2&3777;1;EMSTRT ;BG2;10;CDF 00%2;0;0 004121 0001 004122 1476 004123 3775 004124 0010 004125 3100 004126 0000 004127 0000 IFZERO BGMAX-3&4000 < 004130 1363 KHIBG3, "I^100+"3&3777;1;KHIST ;BG3;10;CDF 00%2;0;0 004131 0001 /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 152-1 004132 2026 004133 4063 004134 0010 004135 3100 004136 0000 004137 0000 004140 2163 KHOBG3, "O^100+"3&3777;0;KHO ;BG3;10;CDF 00%2;0;0 004141 0000 004142 2403 004143 4063 004144 0010 004145 3100 004146 0000 004147 0000 004150 0763 EMBG3, "E^100+"3&3777;1;EMSTRT ;BG3;10;CDF 00%2;0;0 004151 0001 004152 1476 004153 4063 004154 0010 004155 3100 004156 0000 004157 0000 IFZERO BGMAX-4&4000 < KHIBG4, "I^100+"4&3777;1;KHIST ;BG4;10;CDF 00%2;0;0 KHOBG4, "O^100+"4&3777;0;KHO ;BG4;10;CDF 00%2;0;0 EMBG4, "E^100+"4&3777;1;EMSTRT ;BG4;10;CDF 00%2;0;0 IFZERO BGMAX-5&4000 < KHIBG5, "I^100+"5&3777;1;KHIST ;BG5;10;CDF 00%2;0;0 KHOBG5, "O^100+"5&3777;0;KHO ;BG5;10;CDF 00%2;0;0 EMBG5, "E^100+"5&3777;1;EMSTRT ;BG5;10;CDF 00%2;0;0 IFZERO BGMAX-6&4000 < KHIBG6, "I^100+"6&3777;1;KHIST ;BG6;10;CDF 00%2;0;0 KHOBG6, "O^100+"6&3777;0;KHO ;BG6;10;CDF 00%2;0;0 EMBG6, "E^100+"6&3777;1;EMSTRT ;BG6;10;CDF 00%2;0;0 IFZERO BGMAX-7&4000 < KHIBG7, "I^100+"7&3777;1;KHIST ;BG7;10;CDF 00%2;0;0 KHOBG7, "O^100+"7&3777;0;KHO ;BG7;10;CDF 00%2;0;0 EMBG7, "E^100+"7&3777;1;EMSTRT ;BG7;10;CDF 00%2;0;0 >>>>>>> 004160 0000 LOADPT, 0 /ZERO IS TERMINATOR IFNZRO MAXNAM^10+TCBTAB-.&4000 <TCBOVF,XERROR> /TO MANY TASKS ! 004161 0000 ZBLOCK MAXNAM^10+TCBTAB-. /THE REST OF TCBTAB IS /FOR DISK-RESIDENT TASKS 004500 0000 ZBLOCK .+200&7600-.&7770 /USE THE REST OF THIS PAGE TOO ! 4600 *. IFNZRO PASS1 <ENDF00=.-1> IFZERO ENDF00+200&4000 <F00ERR,XERROR /CORE OVERFLOW > /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 153 /********************************************************** /********** D A T A A R E A F I E L D 1 ********** /********************************************************** 0001 FIELD 1 3000 *DOTF10 IFNZRO BGMAX < /THE TERMINAL BUFFERS AND THE TERMINAL BUFFER POOL 7760 O=-BSIZE 3000 *.+BSIZE-1&O /BUFFERS START AT 'NICE' ADDRESS IFZERO BGMAX-1&4000 < 013000 0000 BG1IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER 013001 0322 013002 0215 013003 0000 013020 0000 BG1OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER > IFZERO BGMAX-2&4000 < 013040 0000 BG2IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER 013041 0322 013042 0215 013043 0000 013060 0000 BG2OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER > IFZERO BGMAX-3&4000 < 013100 0000 BG3IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER 013101 0322 013102 0215 013103 0000 013120 0000 BG3OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER > IFZERO BGMAX-4&4000 < BG4IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER BG4OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER > IFZERO BGMAX-5&4000 < BG5IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER BG5OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER > IFZERO BGMAX-6&4000 < BG6IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER BG6OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER > IFZERO BGMAX-7&4000 < BG7IN, 0;"R;215;ZBLOCK BSIZE-3 /FIRST BLOCK OF INPUT BUFFER BG7OUT, ZBLOCK BSIZE /FIRST BLOCK OF OUTPUT BUFFER > /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 154 013140 0000 ZBLOCK BSIZE /LAST BLOCK IN THE POOL IFNZRO POOLN-1&1 < 013160 3140 .-BSIZE;ZBLOCK BSIZE-1 > 013161 0000 IFNZRO POOLN-1&2 < 013200 3160 .-BSIZE;ZBLOCK BSIZE-1 013201 0000 013220 3200 .-BSIZE;ZBLOCK BSIZE-1 > 013221 0000 IFNZRO POOLN-1&4 < 013240 3220 .-BSIZE;ZBLOCK BSIZE-1 013241 0000 013260 3240 .-BSIZE;ZBLOCK BSIZE-1 013261 0000 013300 3260 .-BSIZE;ZBLOCK BSIZE-1 013301 0000 013320 3300 .-BSIZE;ZBLOCK BSIZE-1 > 013321 0000 IFNZRO POOLN-1&10 < .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 > IFNZRO POOLN-1&20 < .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 > /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 155 IFNZRO POOLN-1&40 < .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 .-BSIZE;ZBLOCK BSIZE-1 > 013340 3320 FQLAST, .-BSIZE;ZBLOCK BSIZE-1 /LAST BLOCK OF FREE QUEUE 013341 0000 /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 156 013360 3416 FRESLT, FBLKO /POINTER TO FREE SLOT IN SWPTAB 013361 0000 BSTAB, 0 /STARTBLOCK OF SWPFIL.M8 IFZERO BGMAX-1&4000 < 0001 BGID=BG1-BGDATA+1 013362 0001 0000+BGID /BG1, FIELD 0 IFNDEF SINGL8 < 013363 0000 ZBLOCK BGFLDS-1 /REAL MEMORY INITIALLY EMPTY > 013367 1001 1000+BGID /BG1, FIELD 1 IFZERO BGCORE-3&4000 < 013370 2001 2000+BGID /BG1, FIELD 2 > IFZERO BGCORE-4&4000 < 013371 3001 3000+BGID /BG1, FIELD 3 > IFZERO BGCORE-5&4000 < 013372 4001 4000+BGID /BG1, FIELD 4 > IFZERO BGCORE-6&4000 < 013373 5001 5000+BGID /BG1, FIELD 5 > IFZERO BGCORE-7&4000 < 013374 6001 6000+BGID /BG1, FIELD 6 > IFZERO BGCORE-10&4000 < 013375 7001 7000+BGID /BG1, FIELD 7 >> IFZERO BGMAX-2&4000 < 0067 BGID=BG2-BGDATA+1 013376 0067 0000+BGID /BG2, FIELD 0 013377 1067 1000+BGID /BG2, FIELD 1 IFZERO BGCORE-3&4000 < 013400 2067 2000+BGID /BG2, FIELD 2 > IFZERO BGCORE-4&4000 < 013401 3067 3000+BGID /BG2, FIELD 3 > IFZERO BGCORE-5&4000 < 013402 4067 4000+BGID /BG2, FIELD 4 > IFZERO BGCORE-6&4000 < 013403 5067 5000+BGID /BG2, FIELD 5 > IFZERO BGCORE-7&4000 < 013404 6067 6000+BGID /BG2, FIELD 6 > IFZERO BGCORE-10&4000 < 013405 7067 7000+BGID /BG2, FIELD 7 >> IFZERO BGMAX-3&4000 < 0155 BGID=BG3-BGDATA+1 013406 0155 0000+BGID /BG3, FIELD 0 013407 1155 1000+BGID /BG3, FIELD 1 IFZERO BGCORE-3&4000 < 013410 2155 2000+BGID /BG3, FIELD 2 > IFZERO BGCORE-4&4000 < 013411 3155 3000+BGID /BG3, FIELD 3 > IFZERO BGCORE-5&4000 < 013412 4155 4000+BGID /BG3, FIELD 4 > IFZERO BGCORE-6&4000 < 013413 5155 5000+BGID /BG3, FIELD 5 > IFZERO BGCORE-7&4000 < 013414 6155 6000+BGID /BG3, FIELD 6 > IFZERO BGCORE-10&4000 < 013415 7155 7000+BGID /BG3, FIELD 7 >> IFZERO BGMAX-4&4000 < BGID=BG4-BGDATA+1 0000+BGID /BG4, FIELD 0 /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 156-1 1000+BGID /BG4, FIELD 1 IFZERO BGCORE-3&4000 < 2000+BGID /BG4, FIELD 2 > IFZERO BGCORE-4&4000 < 3000+BGID /BG4, FIELD 3 > IFZERO BGCORE-5&4000 < 4000+BGID /BG4, FIELD 4 > IFZERO BGCORE-6&4000 < 5000+BGID /BG4, FIELD 5 > IFZERO BGCORE-7&4000 < 6000+BGID /BG4, FIELD 6 > IFZERO BGCORE-10&4000 < 7000+BGID /BG4, FIELD 7 >> IFZERO BGMAX-5&4000 < BGID=BG5-BGDATA+1 0000+BGID /BG5, FIELD 0 1000+BGID /BG5, FIELD 1 IFZERO BGCORE-3&4000 < 2000+BGID /BG5, FIELD 2 > IFZERO BGCORE-4&4000 < 3000+BGID /BG5, FIELD 3 > IFZERO BGCORE-5&4000 < 4000+BGID /BG5, FIELD 4 > IFZERO BGCORE-6&4000 < 5000+BGID /BG5, FIELD 5 > IFZERO BGCORE-7&4000 < 6000+BGID /BG5, FIELD 6 > IFZERO BGCORE-10&4000 < 7000+BGID /BG5, FIELD 7 >> IFZERO BGMAX-6&4000 < BGID=BG6-BGDATA+1 0000+BGID /BG6, FIELD 0 1000+BGID /BG6, FIELD 1 IFZERO BGCORE-3&4000 < 2000+BGID /BG6, FIELD 2 > IFZERO BGCORE-4&4000 < 3000+BGID /BG6, FIELD 3 > IFZERO BGCORE-5&4000 < 4000+BGID /BG6, FIELD 4 > IFZERO BGCORE-6&4000 < 5000+BGID /BG6, FIELD 5 > IFZERO BGCORE-7&4000 < 6000+BGID /BG6, FIELD 6 > IFZERO BGCORE-10&4000 < 7000+BGID /BG6, FIELD 7 >> IFZERO BGMAX-7&4000 < BGID=BG7-BGDATA+1 0000+BGID /BG7, FIELD 0 1000+BGID /BG7, FIELD 1 IFZERO BGCORE-3&4000 < 2000+BGID /BG7, FIELD 2 > IFZERO BGCORE-4&4000 < 3000+BGID /BG7, FIELD 3 > IFZERO BGCORE-5&4000 < 4000+BGID /BG7, FIELD 4 > /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 156-2 IFZERO BGCORE-6&4000 < 5000+BGID /BG7, FIELD 5 > IFZERO BGCORE-7&4000 < 6000+BGID /BG7, FIELD 6 > IFZERO BGCORE-10&4000 < 7000+BGID /BG7, FIELD 7 >> 013416 0000 FBLKO, 0 /ONE EMPTY SLOT IN SWPFIL 3367 SWPTAB=BSTAB+1+BGFLDS /THESE 3 LISTS MUST BE TOGETHER!!! > /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 157 IFDEF KL8XX < /LIST FOR THE REENTRANT TTY DRIVERS IFNDEF KL8A1 <O=2> IFDEF KL8A1 <O=3> TT1LST, 0 /TTCHAR TTY1 /TTEVNT 0 /TTRET TLS /TTTLS ZBLOCK O /TTSAV,(TTLINE),TTCOUNT -T1CHAR /TTFCHR -T1FILL /TTFILL 0 /TTTMP T1BACK-210 /TTBACK MUST BE IN THIS ORDER!! KK1LST, KB1 -T1ESCP IFDEF KL8E2 < TT2LST, 0 TTY2 0 6016+KL8E2 ZBLOCK O -T2CHAR -T2FILL 0 T2BACK-210 KK2LST, KB2 -T2ESCP / > IFDEF KL8E3< TT3LST, 0 TTY3 0 6016+KL8E3 ZBLOCK O -T3CHAR -T3FILL 0 T3BACK-210 KK3LST, KB3 -T3ESCP / > IFDEF KL8E4 < TT4LST, 0 TTY4 0 6016+KL8E4 ZBLOCK O -T4CHAR -T4FILL 0 T4BACK-210 KK4LST, KB4 -T4ESCP / > IFDEF KL8E5 < TT5LST, 0 TTY5 0 6016+KL8E5 /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 157-1 ZBLOCK O -T5CHAR -T5FILL 0 T5BACK-210 KK5LST, KB5 -T5ESCP / > IFDEF KL8E6< TT6LST, 0 TTY6 0 6016+KL8E6 ZBLOCK O -T6CHAR -T6FILL 0 T6BACK-210 KK6LST, KB6 -T6ESCP / > IFDEF KL8E7 < TT7LST, 0 TTY7 0 6016+KL8E7 ZBLOCK O -T7CHAR -T7FILL 0 T7BACK-210 KK7LST, KB7 -T7ESCP / > IFDEF KL8A1 < TY0LST, 0 MUX1TT 0 KL8A1+6004 0 400^0 0 -C0CHAR -C0FILL 0 C0BACK-210 KB0LST, MUX1KB -C0ESCP TY1LST, 0 MUX1TT+1 0 KL8A1+6004 0 400^1 0 -C1CHAR -C1FILL 0 /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 157-2 C1BACK-210 KB1LST, MUX1KB+1 -C1ESCP TY2LST, 0 MUX1TT+2 0 KL8A1+6004 0 400^2 0 -C2CHAR -C2FILL 0 C2BACK-210 KB2LST, MUX1KB+2 -C2ESCP TY3LST, 0 MUX1TT+3 0 KL8A1+6004 0 400^3 0 -C3CHAR -C3FILL 0 C3BACK-210 KB3LST, MUX1KB+3 -C3ESCP /END IFDEF KL8A1 > /END IFDEF KL8XX > /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 158 IFNZRO BGMAX < /DISPATCH TABLE FOR FAKEHANDLER: 013417 6263 HNDTAB, -EMCHNL+EMDOT /0 EMULATOR FOR CHANNEL 0-3 0010 SYSCHN=.-HNDTAB^10 013420 0723 "D^100+"S&3777 /1 FOR SYSTEM-DISK PUBLIC DEVICES IFDEF DSK < DSKCHN=.-HNDTAB^10 "D^100+"N&3777 /T FOR NON-SYSTEM DISK PUBLIC DEVICES > IFDEF TAPE < 0020 DTACHN=.-HNDTAB^10 013421 2705 "T^100+"E&3777 /U FOR DTA0:-DTA7: (TUA0:-TUA7:) > IFDEF LPT < 0030 LPTCHN=.-HNDTAB^10 013422 1705 "L^100+"E&3777 /V FOR LPT: > IFDEF RXA < RXACHN=.-HNDTAB^10 "F^100+"E&3777 /W FOR RXA0:-RXA7: > IFDEF SYRL01 <RL01DS=1 > IFDEF NSRL01 <RL01DS=1> IFDEF RL01DS < RLCCHN=.-HNDTAB^10 "D^100+"C&3777 /X FOR RLC DEVICES > IFDEF CRD < CRDCHN=.-HNDTAB^10 "K^100+"E&3777 /Y FOR CDR: > 013423 7604 IFZERO HNDTAB+07-.&4000 < -EMERROR+EMDOT / RESERVED > 013424 7604 IFZERO HNDTAB+07-.&4000 < -EMERROR+EMDOT / RESERVED > 013425 7604 IFZERO HNDTAB+07-.&4000 < -EMERROR+EMDOT / RESERVED > 013426 7604 IFZERO HNDTAB+07-.&4000 < -EMERROR+EMDOT / RESERVED > IFZERO HNDTAB+07-.&4000 < -EMERROR+EMDOT / RESERVED > IFZERO HNDTAB+07-.&4000 < -EMERROR+EMDOT / RESERVED > IFNZRO HNDTAB+10-.&4000 <CHNOVR,__ / > /TABLE OF EXECUTABLE IOT'S /0=NOT EXECUTABLE /.GT.0="N^100+"A&3777 TASK'S NAME /.LT.0= RELATIVE DISTANCE TO SERVICE CODE 013427 7775 EMTAB, -EM00+EMDOT /600X 013430 0000 ZBLOCK EMTAB+3-. 013432 7773 -EM03+EMDOT /603X 013433 7773 -EM03+EMDOT /604X 013434 0000 ZBLOCK EMTAB+20-. 013447 7771 -EM20+EMDOT /620X 013450 7771 -EM20+EMDOT /621X 013451 7771 -EM20+EMDOT /622X 013452 7771 -EM20+EMDOT /623X 013453 7771 -EM20+EMDOT /624X 013454 7771 -EM20+EMDOT /625X 013455 7771 -EM20+EMDOT /626X 013456 7771 -EM20+EMDOT /627X IFDEF FPP < ZBLOCK EMTAB+55-. -EM55+EMDOT /655X -EM55+EMDOT /656X > 013457 0000 ZBLOCK EMTAB+77-. 013526 7765 -EMGIGA+EMDOT /GIANT IOT =6770 /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 159 / /TABLE FOR GROUP 6200-6277 IOT'S WHICH NEED SPECIAL DECODING / 013527 7575 EM20TB, -EMXNOP+EMDOT /6200 LXM OF KT8A 013530 7704 -EMCDIF+EMDOT /6201 CDF 0 013531 7704 -EMCDIF+EMDOT /6202 CIF 0 013532 7704 -EMCDIF+EMDOT /6203 CDI 0 013533 7604 -EMERROR+EMDOT /6204 CINT: ???? 013534 7575 -EMXNOP+EMDOT /6205 CDF 100 OR DM8E: RTM 013535 7604 -EMERROR+EMDOT /6206 CIF 100 013536 7604 -EMERROR+EMDOT /6207 CDI 100 013537 7604 -EMERROR+EMDOT /6210 GTS OF KT8A 013540 7704 -EMCDIF+EMDOT /6211 CDF 10 013541 7704 -EMCDIF+EMDOT /6212 CIF 10 013542 7704 -EMCDIF+EMDOT /6213 CDI 10 013543 7604 -EMERROR+EMDOT /6214 RDF (SHOULD UNTRAP) 013544 7575 -EMXNOP+EMDOT /6215 CDF 110 OR DM8E: SKME 013545 7604 -EMERROR+EMDOT /6216 CIF 110 013546 7604 -EMERROR+EMDOT /6217 CDI 110 013547 7604 -EMERROR+EMDOT /6220 RTS OF KT8A IFZERO BGCORE-3&4000 < 013550 7704 -EMCDIF+EMDOT /6221 CDF 20 013551 7704 -EMCDIF+EMDOT /6222 CIF 20 013552 7704 -EMCDIF+EMDOT /6223 CDI 20 > IFNZRO BGCORE-3&4000 < -EMXNOP+EMDOT / -EMERROR+EMDOT / -EMERROR+EMDOT / > 013553 7604 -EMERROR+EMDOT /6224 RIF (SHOULD UNTRAP) 013554 7575 -EMXNOP+EMDOT /6225 CDF 120 OR DM8E: SKMM 013555 7604 -EMERROR+EMDOT /6226 CIF 120 013556 7604 -EMERROR+EMDOT /6227 CDI 120 013557 7575 -EMXNOP+EMDOT /6230 RXM OF KT8A (NOP FOR ODT) IFZERO BGCORE-4&4000 < 013560 7704 -EMCDIF+EMDOT /6231 CDF 30 013561 7704 -EMCDIF+EMDOT /6232 CIF 30 013562 7704 -EMCDIF+EMDOT /6233 CDI 30 > IFNZRO BGCORE-4&4000 < -EMXNOP+EMDOT / -EMERROR+EMDOT / -EMERROR+EMDOT / > 013563 7604 -EMERROR+EMDOT /6234 RIB 013564 7575 -EMXNOP+EMDOT /6235 CDF 130 OR DM8E: LTM 013565 7604 -EMERROR+EMDOT /6236 CIF 130 013566 7604 -EMERROR+EMDOT /6237 CDI 130 013567 7604 -EMERROR+EMDOT /6240 LRR OF KT8A IFZERO BGCORE-5&4000 < 013570 7704 -EMCDIF+EMDOT /6241 CDF 40 013571 7704 -EMCDIF+EMDOT /6242 CIF 40 013572 7704 -EMCDIF+EMDOT /6243 CDI 40 > IFNZRO BGCORE-5&4000 < -EMXNOP+EMDOT / -EMERROR+EMDOT / -EMERROR+EMDOT / > 013573 7604 -EMERROR+EMDOT /6244 RMF /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 159-1 013574 7575 -EMXNOP+EMDOT /6245 CDF 140 OR DM8E: LRM 013575 7604 -EMERROR+EMDOT /6246 CIF 140 013576 7604 -EMERROR+EMDOT /6247 CDI 140 013577 7604 -EMERROR+EMDOT /6250 RRR OF KT8A IFZERO BGCORE-6&4000 < 013600 7704 -EMCDIF+EMDOT /6251 CDF 50 013601 7704 -EMCDIF+EMDOT /6252 CIF 50 013602 7704 -EMCDIF+EMDOT /6253 CDI 50 > IFNZRO BGCORE-6&4000 < -EMXNOP+EMDOT / -EMERROR+EMDOT / -EMERROR+EMDOT / > 013603 7576 -EMXSKP+EMDOT /6254 SINT: SKIP-0N-MULTI8 013604 7575 -EMXNOP+EMDOT /6255 CDF 150 013605 7604 -EMERROR+EMDOT /6256 CIF 150 013606 7604 -EMERROR+EMDOT /6257 CDI 150 013607 7604 -EMERROR+EMDOT /6260 LUSR OF KT8A IFZERO BGCORE-7&4000 < 013610 7704 -EMCDIF+EMDOT /6261 CDF 60 013611 7704 -EMCDIF+EMDOT /6262 CIF 60 013612 7704 -EMCDIF+EMDOT /6263 CDI 60 > IFNZRO BGCORE-7&4000 < -EMXNOP+EMDOT / -EMERROR+EMDOT / -EMERROR+EMDOT / > 013613 6772 -EMSPY+EMDOT /6264 CUF: LOOK-INTO-REAL-MEMORY 013614 7575 -EMXNOP+EMDOT /6265 CDF 160 OR DM8E: SMME 013615 7604 -EMERROR+EMDOT /6266 CIF 160 013616 7604 -EMERROR+EMDOT /6267 CDI 160 013617 7604 -EMERROR+EMDOT /6270 RUSR OF KT8A IFZERO BGCORE-10&4000 < 013620 7704 -EMCDIF+EMDOT /6271 CDF 70 013621 7704 -EMCDIF+EMDOT /6272 CIF 70 013622 7704 -EMCDIF+EMDOT /6273 CDI 70 > IFNZRO BGCORE-10&4000 < -EMXNOP+EMDOT / -EMERROR+EMDOT / -EMERROR+EMDOT / > 013623 7604 -EMERROR+EMDOT /6274 SUF: ???? 013624 7575 -EMXNOP+EMDOT /6275 CDF 170 OR DM8E: CMME 013625 7604 -EMERROR+EMDOT /6276 CIF 170 013626 7604 -EMERROR+EMDOT /6277 CDI 170 /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 160 /TABLE OF PROCESSOR (GROUP 00) IOT'S 013627 6312 EM00TB, -EMHAND+EMDOT /'SKON': IS HANDLER CALL IN MULTI8 013630 7604 -EMERROR+EMDOT /'ION' : NOT ON VIRTUAL MACHINE 013631 7314 -EMREDY+EMDOT /'IOF' : INTERRUPT IS VIRTUALLY OFF 013632 7314 -EMREDY+EMDOT /'SRQ' : NO INTERRUPT REQUEST 013633 7604 -EMERROR+EMDOT /'GTF' : NO GOOD 013634 7604 -EMERROR+EMDOT /'RTF' : RESTORE WHAT? IFNDEF EAE < -EMREDY+EMDOT /'SGT' : NO EAE, NO SKIP > IFDEF EAE < 013635 7325 -EMSGT+EMDOT /'SGT' : EAE, TEST IF SKIP > 013636 7611 -EMCLCA+EMDOT /'CAF' : DO ALL WE CAN /DISPATCH TABLE FOR TERMINAL IOT'S 013637 7021 EM03TB, -DO6030+EMDOT /6030 013640 7043 -DO6031+EMDOT /6031 013641 7023 -DO6032+EMDOT /6032 013642 7604 -EMERROR+EMDOT /6033 013643 7002 -DO6034+EMDOT /6034 013644 7604 -EMERROR+EMDOT /6035 013645 7026 -DO6036+EMDOT /6036 013646 7604 -EMERROR+EMDOT /6037 013647 7314 -EMREDY+EMDOT /6040 013650 7576 -EMXSKP+EMDOT /6041 013651 7314 -EMREDY+EMDOT /6042 013652 7604 -EMERROR+EMDOT /6043 013653 7127 -DO6044+EMDOT /6044 013654 7604 -EMERROR+EMDOT /6045 013655 7127 -DO6046+EMDOT /6046 013656 7604 -EMERROR+EMDOT /6047 IFDEF FPP < /DISPATCH TABLE FOR FPP8A HARDWARE INSTRUCTIONS EM55TB, -EMERROR+EMDOT /FFST : START MAINTENANCE FIRMWARE -EMXSKP+EMDOT /FPINT : FPP IS ALWAYS READY -FPICL+EMDOT /FPICL : CLEAR STATUS AND AC -FPCOM+EMDOT /FPCOM : SET APTHI AND SELECT FP/DP -EMREDY+EMDOT /FPHLT : IMPOSSIBLE FOR EMULATOR (BUT ^C) -FPST+EMDOT /FPST : SET APTLOW, START EMULATOR AND SKIP -FPRST+EMDOT /FPRST : READ STATUS -FPIST+EMDOT /FPIST : SKIP, READ STATUS, CLEAR STATUS -EMERROR+EMDOT /6560 : NOT USED -EMERROR+EMDOT /FMODE : ENTER MAINTENANCE MODE -EMERROR+EMDOT /6562 : NOT USED -EMERROR+EMDOT /FMRB : READ DATA BUFFER -EMERROR+EMDOT /FMRP : READ MUPC -EMERROR+EMDOT /FMDO : EXECUTE ONE STEP -EMERROR+EMDOT /6566 : NOT USED -FPEP+EMDOT /FPEP : SELECT EP IF AC0=1 /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 161 /FPP EMULATOR INSTRUCTION DISPATCH LISTS SPCLST, LDADX /SPECIAL INSTRUCTIONS JUMPS FFJXN FFTRP3 FFTRP4 FFNOP /LTR? FFNOP /LEA,IMUL? FFNOP /LEAI,IMULI? LAXLST, FFLDX /LDADX GROUP FFADDX FFNOP FFNOP FFNOP FFNOP FFNOP FFNOP JMPLST, FFJEQ /VARIOUS JUMP INSTR. FFJGE FFJLE FFJA FFJNE FFJLT FFJGT FFJAL FFSETX /MUST FOLLOW JMPLST FFSETB FFJSA FFJSR FFNOP FFNOP FFNOP FFNOP XRLST, FFALN /MAINLY XR INSTRUCTIONS FFATX /LIST ONLY 7 LONG! FFXTA FFNOP FFSTRE FFNOP FFNOP OPRLST, FFEXIT /AND THE OPERATES FFPAUS FFCLA FFNEG FFNORM FFSTRF FFSTRD FFJAC / END IFDEF FPP > /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 162 /TABLE OF "GIANT IOT'S", UAC IS INDEX AFTER 6770 013657 6562 GIGATB, -EMTIME+EMDOT /0 TIME-OF-DAY REQUEST 013660 7727 -EMNUMB+EMDOT /1 GET MACHINE AND TERMINAL NUMBER 013661 7550 -EMQUIT+EMDOT /2 DISABLE KEYBOARD ECHO 013662 7547 -EMECHO+EMDOT /3 ENABLE KEYBOARD ECHO 013663 2701 "T^100+"A&3777 /4 TALK 013664 6073 -EMOPEN+EMDOT /5 OPEN/CLOSE PROCESSOR 013665 7172 -EMSTLL+EMDOT /6 STALL THE BG FOR N SECONDS 013666 7177 -ACCRST+EMDOT /7 RESET ACCOUNT REGISTERS 013667 7206 -ACCRD+EMDOT /10 READ ACCOUNT REGISTERS 013670 7604 -EMERROR+EMDOT /11 FREE SLOT 013671 7327 -EMVER+EMDOT /12 6-BIT PACKED MULTI8 VERSION 013672 7435 -BGREL+EMDOT /13 RELEASE DEVICES FOR INTERACTIVE JOB 013673 7604 -EMERROR+EMDOT /14 RESERVED 013674 7604 -EMERROR+EMDOT /15 RESERVED 013675 7604 -EMERROR+EMDOT /16 RESERVED 013676 7604 -EMERROR+EMDOT /17 RESERVED 013677 0000 ZBLOCK GIGATB+GIGAMX-. /END OF GIGATB /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 163 /DEFINITIONS FOR BG DATA AREA;ALL RELATIVE BGDATA, 0000 BG1, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE 010000* 5400 USTAT, INACTIVE+BGSTOP+ONDISK /STATUS WORD 010001* 0000 UMQ, 0 /USERS MEMORY QUOTIENT REGISTER 010002* 0000 USC, 0 /MSS.SSS.FFF.XXXA/B MODE, /STEPCOUNTER AND LOCKED FIELD 010003* 7201 UPC, 7201 /USERS CURRENT PROGRAM COUNTER 010004* 0100 UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, VIRTUAL INSTRUCTION & DATAFIELD 010005* 0000 UAC, 0 /USERS CURRENT ACCUMULATOR 010006* 0000 UINST, 0 /LAST EMULATED INSTRUCTION 010007* 0000 USW, 0 /USERS SWITCH REGISTER (VIRTUAL) 010010* 0000 UTEMP, 0 /SCRATCH LOCATION #1 010011* 0000 UTEM2, 0 /SCRATCH LOCATION #2 010012* 0000 UDTV, ZBLOCK 3 /TRANSFER VECTOR 010015* 0000 UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE 010025* 0003 UBUFIN, 3 /COUNTER OF INPUT BUFFER 010026* 3001 BG1IN+1 /READ POINTER 010027* 3004 BG1IN+1+3 /WRITE POINTER 010030* 0000 UBUFOUT,0 /COUNTER OF OUTPUT BUFFER 010031* 3021 BG1OUT+1 /READ POINTER 010032* 3021 BG1OUT+1 /WRITE POINTER 010033* 4064 UWRTR, KHOBG1+4 /TCBP OF OUTPUT WRITER 010034* 4074 UCUR, EMBG1+4 /TCBP OF EMULATOR IFDEF USESY1 < 010035* 2631 UCHNL0, USYS1 /DRIVER FOR USERS' SYS: > IFNDEF USESY1 < UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: > 010036* 4511 UNUMB, 4511 /FILE STRUCTURED, DEVICE TYPE 51, UNIT # 010037* 2631 "S^100+"Y&3777 /ENTRY FOR DSK0: 010040* 6500 6500 /READ ONLY, OS/8 SYSTEM, UNIT 0 010041* 0000 ZBLOCK 4 /CHANNEL 2-3 010045* 0000 UECHO, 0 /ECHO FLAG, 4000=NO ECHO IFNDEF SINGL8 < 010046* 0030 UFLD0, FIELDS^10 /FIRST FIELD OF BG1 IN CORE 010047* 0000 ZBLOCK BGCORE-1 /TABLE OF REAL FIELDS, 0=NOT-RESIDENT > IFDEF SINGL8 < UFLD0, 20;30;40;50 /ALL FIELDS IN CORE FOR BG1 > 010056* 0000 UCHAR, 0 /THE CURRENT INPUT CHARACTER IFZERO TTYMAX-1&4000 < 010057* 4044 UKB, K1TCBP+0 /TCBP OF INPUT TASK 010060* 4034 UTTY, T1TCBP+0 /TCBP OF OUTPUT HANDLER > IFNZRO TTYMAX-1&4000 < UKB, 0 /DETACHED BACKBGOUND UTTY, 0 /DETACHED BACKGROUND > 010061* 0000 UCOUNT, 0 /COUNTER FOR "BS" 010062* 0034 USLOT, MAXSLOT+1 /WAIT-FOR-BG-IN-CORE SLOT 010063* 0000 UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE /IN UNITS OF DGNTICK IFDEF FPP < UFPST, 0 /FPP STATUS /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 163-1 UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS UAPTL, 0 /LOW 12 BITS OF APT ADDRES > UNEXT, 010065* 3775 IFNZRO BGMAX-1 <BG2 /POINTER TO NEXT BG > IFZERO BGMAX-1 <BG1 /POINTER TO FIRST BG > 0066 UEND=. /END FOR THIS BG 3775 RELOC /END OF RELATIVE DEFINITIONS /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 164 IFZERO BGMAX-2&4000 < /THE SECOND BG: 0000 BG2, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE 010000* 5400 USTAT, INACTIVE+BGSTOP+ONDISK /STATUS FOR BACKGROUND SCHEDULER 010001* 0000 UMQ, 0 /USERS MEMORY QUOTIENT REGISTER 010002* 0000 USC, 0 /MSS.SSS.FFF.XXXA/B MODE, /STEPCOUNTER AND LOCKED FIELD 010003* 7201 UPC, 7201 /USERS CURRENT PROGRAM COUNTER 010004* 0100 UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, VIRTUAL INSTRUCTION & DATAFIELD 010005* 0000 UAC, 0 /USERS CURRENT ACCUMULATOR 010006* 0000 UINST, 0 /LAST EMULATED INSTRUCTION 010007* 0000 USW, 0 /USERS SWITCH REGISTER (VIRTUAL) 010010* 0000 UTEMP, 0 /SCRATCH LOCATION #1 010011* 0000 UTEM2, 0 /SCRATCH LOCATION #2 010012* 0000 UDTV, ZBLOCK 3 /TRANSFER VECTOR 010015* 0000 UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE 010025* 0003 UBUFIN, 3 /COUNTER OF INPUT BUFFER 010026* 3041 BG2IN+1 /READ POINTER 010027* 3044 BG2IN+1+3 /WRITE POINTER 010030* 0000 UBUFOUT,0 /COUNTER OF OUTPUT BUFFER 010031* 3061 BG2OUT+1 /READ POINTER 010032* 3061 BG2OUT+1 /WRITE POINTER 010033* 4114 UWRTR, KHOBG2+4 /TCBP OF OUTPUT WRITER 010034* 4124 UCUR, EMBG2+4 /TCBP OF EMULATOR IFDEF USESY2 < UCHNL0, USYS2 /DRIVER FOR USERS' SYS: > IFNDEF USESY2 < 010035* 0713 UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: > 010036* 4522 UNUMB, 4522 /FILE STRUCTURED, DEVICE TYPE 52, UNIT # 010037* 2631 "S^100+"Y&3777 /ENTRY FOR DSK0: 010040* 6500 6500 /READ ONLY, OS/8 SYSTEM, UNIT 0 010041* 0000 ZBLOCK 4 /CHANNEL 2-3 010045* 0000 UECHO, 0 /ECHO FLAG, 4000=NO ECHO IFNDEF SINGL8 < 010046* 0000 UFLD0, ZBLOCK BGCORE /TABLE OF REAL FIELDS > IFDEF SINGL8 < UFLD0, 60;70;0;0 /FIELD 0 & 1 IN CORE FOR BG2 > 010056* 0000 UCHAR, 0 /THE CURRENT INPUT CHARACTER IFZERO TTYMAX-2&4000 < UKB, K1TCBP+20 /TCBP OF INPUT TASK UTTY, T1TCBP+20 /TCBP OF OUTPUT HANDLER > IFNZRO TTYMAX-2&4000 < 010057* 0000 UKB, 0 /DETACHED BACKBGOUND 010060* 0000 UTTY, 0 /DETACHED BACKGROUND > 010061* 0000 UCOUNT, 0 /COUNTER FOR "BS" 010062* 0035 USLOT, MAXSLOT+2 /WAIT-FOR-BG-IN-CORE SLOT 010063* 0000 UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE /IN UNITS OF DGNTICK IFDEF FPP < UFPST, 0 /FPP STATUS UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS UAPTL, 0 /LOW 12 BITS OF APT ADDRES > UNEXT, /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 164-1 IFZERO BGMAX-2 <BG1> /POINTER TO FIRST BG 010065* 4063 IFNZRO BGMAX-2 <BG3> /POINTER TO NEXT BG 0066 UEND=. /END FOR THIS BG 4063 RELOC /END OF RELATIVE DEFINITIONS > /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 165 IFZERO BGMAX-3&4000 < /THE THIRD BG: 0000 BG3, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE 010000* 5400 USTAT, INACTIVE+BGSTOP+ONDISK /STATUS FOR BACKGROUND SCHEDULER 010001* 0000 UMQ, 0 /USERS MEMORY QUOTIENT REGISTER 010002* 0000 USC, 0 /MSS.SSS.FFF.XXXA/B MODE, /STEPCOUNTER AND LOCKED FIELD 010003* 7201 UPC, 7201 /USERS CURRENT PROGRAM COUNTER 010004* 0100 UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, VIRTUAL INSTRUCTION & DATAFIELD 010005* 0000 UAC, 0 /USERS CURRENT ACCUMULATOR 010006* 0000 UINST, 0 /LAST EMULATED INSTRUCTION 010007* 0000 USW, 0 /USERS SWITCH REGISTER (VIRTUAL) 010010* 0000 UTEMP, 0 /SCRATCH LOCATION #1 010011* 0000 UTEM2, 0 /SCRATCH LOCATION #2 010012* 0000 UDTV, ZBLOCK 3 /TRANSFER VECTOR 010015* 0000 UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE 010025* 0003 UBUFIN, 3 /COUNTER OF INPUT BUFFER 010026* 3101 BG3IN+1 /READ POINTER 010027* 3104 BG3IN+1+3 /WRITE POINTER 010030* 0000 UBUFOUT,0 /COUNTER OF OUTPUT BUFFER 010031* 3121 BG3OUT+1 /READ POINTER 010032* 3121 BG3OUT+1 /WRITE POINTER 010033* 4144 UWRTR, KHOBG3+4 /TCBP OF OUTPUT WRITER 010034* 4154 UCUR, EMBG3+4 /TCBP OF EMULATOR IFDEF USESY3 < UCHNL0, USYS3 /DRIVER FOR USERS' SYS: > IFNDEF USESY3 < 010035* 0713 UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: > 010036* 4533 UNUMB, 4533 /FILE STRUCTURED, DEVICE TYPE 53, UNIT # 010037* 2631 "S^100+"Y&3777 /ENTRY FOR DSK0: 010040* 6500 6500 /READ ONLY, OS/8 SYSTEM, UNIT 0 010041* 0000 ZBLOCK 4 /CHANNEL 2-3 010045* 0000 UECHO, 0 /ECHO FLAG, 4000=NO ECHO 010046* 0000 UFLD0, ZBLOCK BGCORE /TABLE OF REAL FIELDS 010056* 0000 UCHAR, 0 /THE CURRENT INPUT CHARACTER IFZERO TTYMAX-3&4000 < UKB, K1TCBP+40 /TCBP OF INPUT TASK UTTY, T1TCBP+40 /TCBP OF OUTPUT HANDLER > IFNZRO TTYMAX-3&4000 < 010057* 0000 UKB, 0 /DETACHED BACKBGOUND 010060* 0000 UTTY, 0 /DETACHED BACKGROUND > 010061* 0000 UCOUNT, 0 /COUNTER FOR "BS" 010062* 0036 USLOT, MAXSLOT+3 /WAIT-FOR-BG-IN-CORE SLOT 010063* 0000 UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE /IN UNITS OF DGNTICK IFDEF FPP < UFPST, 0 /FPP STATUS UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS UAPTL, 0 /LOW 12 BITS OF APT ADDRES > UNEXT, 010065* 3707 IFZERO BGMAX-3 <BG1> /POINTER TO FIRST BG IFNZRO BGMAX-3 <BG4> /POINTER TO NEXT BG 0066 UEND=. /END FOR THIS BG /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 165-1 4151 RELOC /END OF RELATIVE DEFINITIONS > /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 166 IFZERO BGMAX-4&4000 < /THE FOURTH BG: BG4, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE USTAT, INACTIVE+BGSTOP+ONDISK /STATUS FOR BACKGROUND SCHEDULER UMQ, 0 /USERS MEMORY QUOTIENT REGISTER USC, 0 /MSS.SSS.FFF.XXXA/B MODE, /STEPCOUNTER AND LOCKED FIELD UPC, 7201 /USERS CURRENT PROGRAM COUNTER UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, VIRTUAL INSTRUCTION & DATAFIELD UAC, 0 /USERS CURRENT ACCUMULATOR UINST, 0 /LAST EMULATED INSTRUCTION USW, 0 /USERS SWITCH REGISTER (VIRTUAL) UTEMP, 0 /SCRATCH LOCATION #1 UTEM2, 0 /SCRATCH LOCATION #2 UDTV, ZBLOCK 3 /TRANSFER VECTOR UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE UBUFIN, 3 /COUNTER OF INPUT BUFFER BG4IN+1 /READ POINTER BG4IN+1+3 /WRITE POINTER UBUFOUT,0 /COUNTER OF OUTPUT BUFFER BG4OUT+1 /READ POINTER BG4OUT+1 /WRITE POINTER UWRTR, KHOBG4+4 /TCBP OF OUTPUT WRITER UCUR, EMBG4+4 /TCBP OF EMULATOR IFDEF USESY4 < UCHNL0, USYS4 /DRIVER FOR USERS' SYS: > IFNDEF USESY4 < UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: > UNUMB, 4544 /FILE STRUCTURED, DEVICE TYPE 54, UNIT # "S^100+"Y&3777 /ENTRY FOR DSK0: 6500 /READ ONLY, OS/8 SYSTEM, UNIT 0 ZBLOCK 4 /CHANNEL 2-3 UECHO, 0 /ECHO FLAG, 4000=NO ECHO UFLD0, ZBLOCK BGCORE /TABLE OF REAL FIELDS UCHAR, 0 /THE CURRENT INPUT CHARACTER IFZERO TTYMAX-4&4000 < UKB, K1TCBP+60 /TCBP OF INPUT TASK UTTY, T1TCBP+60 /TCBP OF OUTPUT HANDLER > IFNZRO TTYMAX-4&4000 < UKB, 0 /DETACHED BACKBGOUND UTTY, 0 /DETACHED BACKGROUND > UCOUNT, 0 /COUNTER FOR "BS" USLOT, MAXSLOT+4 /WAIT-FOR-BG-IN-CORE SLOT UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE /IN UNITS OF DGNTICK IFDEF FPP < UFPST, 0 /FPP STATUS UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS UAPTL, 0 /LOW 12 BITS OF APT ADDRES > UNEXT, IFZERO BGMAX-4 <BG1> /POINTER TO FIRST BG IFNZRO BGMAX-4 <BG5> /POINTER TO NEXT BG UEND=. /END FOR THIS BG /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 166-1 RELOC /END OF RELATIVE DEFINITIONS > /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 167 IFZERO BGMAX-5&4000 < /THE FIFTH BG: BG5, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE USTAT, INACTIVE+BGSTOP+ONDISK /STATUS FOR BACKGROUND SCHEDULER UMQ, 0 /USERS MEMORY QUOTIENT REGISTER USC, 0 /MSS.SSS.FFF.XXXA/B MODE, /STEPCOUNTER AND LOCKED FIELD UPC, 7201 /USERS CURRENT PROGRAM COUNTER UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, VIRTUAL INSTRUCTION & DATAFIELD UAC, 0 /USERS CURRENT ACCUMULATOR UINST, 0 /LAST EMULATED INSTRUCTION USW, 0 /USERS SWITCH REGISTER (VIRTUAL) UTEMP, 0 /SCRATCH LOCATION #1 UTEM2, 0 /SCRATCH LOCATION #2 UDTV, ZBLOCK 3 /TRANSFER VECTOR UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE UBUFIN, 3 /COUNTER OF INPUT BUFFER BG5IN+1 /READ POINTER BG5IN+1+3 /WRITE POINTER UBUFOUT,0 /COUNTER OF OUTPUT BUFFER BG5OUT+1 /READ POINTER BG5OUT+1 /WRITE POINTER UWRTR, KHOBG5+4 /TCBP OF OUTPUT WRITER UCUR, EMBG5+4 /TCBP OF EMULATOR IFDEF USESY5 < UCHNL0, USYS5 /DRIVER FOR USERS' SYS: > IFNDEF USESY5 < UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: > UNUMB, 4555 /FILE STRUCTURED, DEVICE TYPE 55, UNIT # "S^100+"Y&3777 /ENTRY FOR DSK0: 6500 /READ ONLY, OS/8 SYSTEM, UNIT 0 ZBLOCK 4 /CHANNEL 2-3 UECHO, 0 /ECHO FLAG, 4000=NO ECHO UFLD0, ZBLOCK BGCORE /TABLE OF REAL FIELDS UCHAR, 0 /THE CURRENT INPUT CHARACTER IFZERO TTYMAX-5&4000 < UKB, K1TCBP+100 /TCBP OF INPUT TASK UTTY, T1TCBP+100 /TCBP OF OUTPUT HANDLER > IFNZRO TTYMAX-5&4000 < UKB, 0 /DETACHED BACKBGOUND UTTY, 0 /DETACHED BACKGROUND > UCOUNT, 0 /COUNTER FOR "BS" USLOT, MAXSLOT+5 /WAIT-FOR-BG-IN-CORE SLOT UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE /IN UNITS OF DGNTICK IFDEF FPP < UFPST, 0 /FPP STATUS UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS UAPTL, 0 /LOW 12 BITS OF APT ADDRES > UNEXT, IFZERO BGMAX-5 <BG1> /POINTER TO FIRST BG IFNZRO BGMAX-5 <BG6> /POINTER TO NEXT BG UEND=. /END FOR THIS BG /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 167-1 RELOC /END OF RELATIVE DEFINITIONS > /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 168 IFZERO BGMAX-6&4000 < /THE SIXTH BG: BG6, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE USTAT, INACTIVE+BGSTOP+ONDISK /STATUS FOR BACKGROUND SCHEDULER UMQ, 0 /USERS MEMORY QUOTIENT REGISTER USC, 0 /MSS.SSS.FFF.XXXA/B MODE, /STEPCOUNTER AND LOCKED FIELD UPC, 7201 /USERS CURRENT PROGRAM COUNTER UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, VIRTUAL INSTRUCTION & DATAFIELD UAC, 0 /USERS CURRENT ACCUMULATOR UINST, 0 /LAST EMULATED INSTRUCTION USW, 0 /USERS SWITCH REGISTER (VIRTUAL) UTEMP, 0 /SCRATCH LOCATION #1 UTEM2, 0 /SCRATCH LOCATION #2 UDTV, ZBLOCK 3 /TRANSFER VECTOR UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE UBUFIN, 3 /COUNTER OF INPUT BUFFER BG6IN+1 /READ POINTER BG6IN+1+3 /WRITE POINTER UBUFOUT,0 /COUNTER OF OUTPUT BUFFER BG6OUT+1 /READ POINTER BG6OUT+1 /WRITE POINTER UWRTR, KHOBG6+4 /TCBP OF OUTPUT WRITER UCUR, EMBG6+4 /TCBP OF EMULATOR IFDEF USESY6 < UCHNL0, USYS6 /DRIVER FOR USERS' SYS: > IFNDEF USESY6 < UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: > UNUMB, 4566 /FILE STRUCTURED, DEVICE TYPE 56, UNIT # "S^100+"Y&3777 /ENTRY FOR DSK0: 6500 /READ ONLY, OS/8 SYSTEM, UNIT 0 ZBLOCK 4 /CHANNEL 2-3 UECHO, 0 /ECHO FLAG, 4000=NO ECHO UFLD0, ZBLOCK BGCORE /TABLE OF REAL FIELDS UCHAR, 0 /THE CURRENT INPUT CHARACTER IFZERO TTYMAX-6&4000 < UKB, K1TCBP+120 /TCBP OF INPUT TASK UTTY, T1TCBP+120 /TCBP OF OUTPUT HANDLER > IFNZRO TTYMAX-6&4000 < UKB, 0 /DETACHED BACKBGOUND UTTY, 0 /DETACHED BACKGROUND > UCOUNT, 0 /COUNTER FOR "BS" USLOT, MAXSLOT+6 /WAIT-FOR-BG-IN-CORE SLOT UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE /IN UNITS OF DGNTICK IFDEF FPP < UFPST, 0 /FPP STATUS UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS UAPTL, 0 /LOW 12 BITS OF APT ADDRES > UNEXT, IFZERO BGMAX-6 <BG1> /POINTER TO FIRST BG IFNZRO BGMAX-6 <BG7> /POINTER TO NEXT BG UEND=. /END FOR THIS BG /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 168-1 RELOC /END OF RELATIVE DEFINITIONS > /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 169 IFZERO BGMAX-7&4000 < /THE SEVENTH BG: BG7, RELOC 0 /ALL FOLLOWING SYMBOLS ARE RELATIVE USTAT, INACTIVE+BGSTOP+ONDISK /STATUS FOR BACKGROUND SCHEDULER UMQ, 0 /USERS MEMORY QUOTIENT REGISTER USC, 0 /MSS.SSS.FFF.XXXA/B MODE, /STEPCOUNTER AND LOCKED FIELD UPC, 7201 /USERS CURRENT PROGRAM COUNTER UFLDS, 100 /LGX.XXU.III.FFF: LINK, GREATER-THAN, /USER MODE, VIRTUAL INSTRUCTION & DATAFIELD UAC, 0 /USERS CURRENT ACCUMULATOR UINST, 0 /LAST EMULATED INSTRUCTION USW, 0 /USERS SWITCH REGISTER (VIRTUAL) UTEMP, 0 /SCRATCH LOCATION #1 UTEM2, 0 /SCRATCH LOCATION #2 UDTV, ZBLOCK 3 /TRANSFER VECTOR UASEM, ZBLOCK ASEMMX /EMULATORS PLUG THEIR NAMES HERE UBUFIN, 3 /COUNTER OF INPUT BUFFER BG7IN+1 /READ POINTER BG7IN+1+3 /WRITE POINTER UBUFOUT,0 /COUNTER OF OUTPUT BUFFER BG7OUT+1 /READ POINTER BG7OUT+1 /WRITE POINTER UWRTR, KHOBG7+4 /TCBP OF OUTPUT WRITER UCUR, EMBG7+4 /TCBP OF EMULATOR IFDEF USESY7 < UCHNL0, USYS7 /DRIVER FOR USERS' SYS: > IFNDEF USESY7 < UCHNL0, "D^100+"K&3777 /DRIVER FOR USERS' SYS: > UNUMB, 4577 /FILE STRUCTURED, DEVICE TYPE 57, UNIT # "S^100+"Y&3777 /ENTRY FOR DSK0: 6500 /READ ONLY, OS/8 SYSTEM, UNIT 0 ZBLOCK 4 /CHANNEL 2-3 UECHO, 0 /ECHO FLAG, 4000=NO ECHO UFLD0, ZBLOCK BGCORE /TABLE OF REAL FIELDS UCHAR, 0 /THE CURRENT INPUT CHARACTER IFZERO TTYMAX-7&4000 < UKB, K1TCBP+140 /TCBP OF INPUT TASK UTTY, T1TCBP+140 /TCBP OF OUTPUT HANDLER > IFNZRO TTYMAX-7&4000 < UKB, 0 /DETACHED BACKBGOUND UTTY, 0 /DETACHED BACKGROUND > UCOUNT, 0 /COUNTER FOR "BS" USLOT, MAXSLOT+7 /WAIT-FOR-BG-IN-CORE SLOT UACCNT, ZBLOCK 2 /LOWORDER, HIGHORDER CPU USAGE /IN UNITS OF DGNTICK IFDEF FPP < UFPST, 0 /FPP STATUS UAPTH, 0 /HIGH 3 BITS OF APT ADDRESS UAPTL, 0 /LOW 12 BITS OF APT ADDRES > UNEXT, BG1 /NOTE! BG7 IS ALWAYS THE LAST ONE UEND=. /END FOR THIS BG RELOC /END OF RELATIVE DEFINITIONS > /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 169-1 /END OF BGMAX CONDITIONAL > /M4.PA 9-JUN-80 PAL8-V40A 26-JAN-86 PAGE 170 /END OF FIELD 1 DATA AREA. 4200 PAGE 4200 DOTF10=. IFNZRO PASS1 < ENDF10=DOTF10-1 ENDF20=DOTF20-1 ENDF30=DOTF30-1 ENDF40=DOTF40-1 ENDF50=DOTF50-1 ENDF60=DOTF60-1 ENDF70=DOTF70-1> /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 171 /M5.PA 9-SEP-80 /EQUATES: 7746 JSW=7746 /ADDRESS OF OS/8 JOB STATUS WORD 1000 NO=1000 /DON'T RESTART BIT IN JSW 7607 SYSHND=7607 /ENTRYPOINT OF SYSTEM HANDLER 7700 USR=7700 /USER SERVICE ROUTINE. 0001 FETCH=1 /FETCH HANDLER REQUEST CODE 0002 LOOKUP=2 /FILENAME LOOKUP REQUEST CODE 0003 ENTER=3 /ENTER NEW OUTPUT FILE 0004 CLOSE=4 /CLOSE PERMANENT FILE 0005 CD=5 /COMMAND DECODE 0010 USRIN=10 /CALL USR INTO CORE REQUEST CODE 0011 USROUT=11 /DISMISS USR REQUEST CODE 0012 INQUIRE=12 /GET DEVICE NUMBER REQUEST CODE /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 172 0003 FIELD BGFLD%10 0000 *0 030000 0000 TEMP, 0 030001 0000 TEMP1, 0 030002 0000 TEMP2, 0 030003 0000 TEMP3, 0 030004 0000 ZBLOCK 3 /ODT BREAKPOINT 030007 0000 TEMP4, 0 030010 0000 AUTO10, 0 030011 0000 AUTO11, 0 030012 0000 AUTO12, 0 030013 0000 AUTO13, 0 030014 0000 AUTO14, 0 030015 0000 AUTO15, 0 030016 0000 AUTO16, 0 030017 0000 AUTO17, 0 030020 0000 TEMP5, 0 030021 0000 TEMP6, 0 030022 0000 TEMP7, 0 030023 0000 ZNUM, 0 030024 0000 BINAC, 0 030025 0000 CHANGD, 0 /IF ZERO, CORE IMAGE MUST BE SAVED 030026 7777 CHAIND, -1 /CHAIN SWITCH 0200 *200 030200 7300 PWRUP, CLA CLL / 030201 1177 TAD [NO /SET NOT-RESTART BIT 030202 6201 CDF 0 // 030203 3576 DCA I [JSW // 030204 1175 TAD [GTF // 030205 3574 DCA I [200 //RESTORE SKIPCHAIN 030206 6231 CDF BGFLD / 030207 7301 AC0001 /ON SYS: 030210 6212 CIF 10 030211 4573 JMS I [7700 /DELETE THE OLD COPY OF MULTI8.SV 030212 0004 CLOSE /SOME INEXPERIENCED USERS GET 030213 0352 MULTI8 /VERY CONFUSED BY AN OLD DATE!! 030214 0000 0 /0 MEANS DELETE 030215 7200 CLA /SO WHAT? 030216 4572 JMS I [COPYZ /COPY PAGE ZERO IN FOREGROUND FIELDS 030217 4571 JMS I [SETNAM /ENTER PREASSEMBLED TASKS IN NAMLST 030220 4570 JMS I [LNKTCB /LINK THE FREE TASK CONTROL BLOCKS 030221 4567 JMS I [SAVE /SAVE THE COMPLETE IMAGE IN 'MULTI8.SV' 030222 5577 JMP I [STRT /AND START TASKBUILDING PHASE /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 173 030223 0000 SAVE, 0 /SAVE CORE IN 'MULTI8.SV' 030224 1025 TAD CHANGD 030225 7640 SZA CLA /NEED TO SAVE ? 030226 5623 JMP I SAVE /NO, NOTHING CHANGED 030227 2025 ISZ CHANGD /YES, RESET CHANGED FLAG 030230 1166 TAD [MULTI8 030231 3236 DCA STBLK 030232 7301 AC0001 /DEVICE IS SYS: 030233 6212 CIF 10 / 030234 4573 JMS I [7700 /LOOKUP THE FILE 'MULTI8.SV' 030235 0002 LOOKUP 030236 0352 STBLK, MULTI8 030237 0000 LNGTH, 0 030240 4314 JMS NEWSAV /CREATE THE SAVE FILE 030241 1237 TAD LNGTH /GET MINUS FILE LENGTH 030242 1342 TAD NEWLEN 030243 7740 SMA SZA CLA /LONG ENOUGH ? 030244 4314 JMS NEWSAV /TOO SHORT, MAKE A NEW SAVE FILE 030245 1236 TAD STBLK /GET STARTING BLOCK NUMBER 030246 3255 DCA STBLK1 /AND MOVE IT TO THE FIRST WRITE REQUEST 030247 1236 TAD STBLK 030250 3565 DCA I [OFSET /UPDATE OFFSET FOR TASKBUILDER 030251 6202 CIF 0 /WRITE THE CORE CONTROL BLOCK 030252 4564 JMS I [SYSHND /IN THE FIRST BLOCK OF THE FILE 030253 4230 4200+BGFLD 030254 0356 CCB 030255 0000 STBLK1, 0 030256 4563 ERR3, JMS I [ERROR /?WRITING SYS:? 030257 1162 TAD [CCBLST-1 /POINTER TO CORE PARAMETERS LIST 030260 3010 DCA AUTO10 /WE USE IT IN SAVING THE FILE TOO 030261 1255 TAD STBLK1 /SET BLOCK NUMBER 030262 7001 IAC /+1 FOR CCB 030263 3277 DCA STBLK2 / 030264 1356 TAD CCB /NUMBER OF SEGMENTS 030265 3000 DCA TEMP /IN COUNTER 030266 1410 SAVLOP, TAD I AUTO10 /GET CORE ADDRESS 030267 3276 DCA ADR / 030270 7330 AC4000 /SET WRITE-BIT 030271 1410 TAD I AUTO10 / 030272 3275 DCA FUN /SET FUNCTION WORD 030273 6202 CIF 0 /WRITE THIS SEGMENT 030274 4564 JMS I [SYSHND / 030275 0000 FUN, 0 030276 0000 ADR, 0 030277 0000 STBLK2, 0 030300 4563 ERR3A, JMS I [ERROR /?WRITING SYS:? /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 174 030301 1275 TAD FUN /UPDATE BLOCKNUMBER 030302 0161 AND [3700 030303 7002 BSW 030304 7111 IAC CLL RAR /ROUND UP TO # OF BLOCKS 030305 7450 SNA 030306 1160 TAD [20 030307 1277 TAD STBLK2 030310 3277 DCA STBLK2 030311 2000 ISZ TEMP /ALL SEGMENTS DONE ? 030312 5266 JMP SAVLOP /NO, CYCLE 030313 5623 JMP I SAVE /YES, RETURN 030314 0000 NEWSAV, 0 030315 1256 ERR23A, TAD ERR3 030316 3315 DCA ERR23A /ONCE ONLY ! 030317 1166 TAD [MULTI8 030320 3325 DCA STBLK0 /SETUP POINTER TO FILENAME 030321 7301 AC0001 030322 6212 CIF 10 030323 4573 JMS I [7700 /ENTER NEW FILE 030324 0003 ENTER 030325 0352 STBLK0, MULTI8 /POINTER TO FILENAME 030326 0000 TENTLN, 0 030327 4563 ERR4, JMS I [ERROR /CAN'T CLOSE SAVE FILE 030330 1326 TAD TENTLN 030331 7100 CLL 030332 1342 TAD NEWLEN 030333 7630 SZL CLA /IS THIS HOLE LARGE ENOUGH ? 030334 4563 ERR4A, JMS I [ERROR /NO, NO ROOM FOR MULTI8.SV 030335 7301 AC0001 030336 6212 CIF 10 030337 4573 JMS I [7700 030340 0004 CLOSE 030341 0352 MULTI8 030342 0106 NEWLEN, SVLNGT 030343 4563 ERR4B, JMS I [ERROR 030344 1342 TAD NEWLEN 030345 7041 CIA 030346 3237 DCA LNGTH 030347 1325 TAD STBLK0 030350 3236 DCA STBLK 030351 5714 JMP I NEWSAV /RETURN TO MAIN SAVE ROUTINE /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 175 /DATA FOR SAVE ROUTINE: MULTI8, IFNDEF SINGL8 < 030352 1525 FILENAME MULTI8.SV / > 030353 1424 030354 1170 030355 2326 IFDEF SINGL8 < FILENAME ZM16.SV / > 0000 O1=0 030356 7774 CCB, -FIELDS-1 /NUMBER OF SEGMENTS 030357 6233 CDF CIF BGFLD /STARTING FIELD 030360 1000 STRT /STARTING ADDRESS 030361 0000 0000 /JOB STATUS WORD 030362 0000 CCBLST, 0000 /SEGMENT FOR BGFLD 3230 O=ENDPWR%2+BGFLD;O1=O+100%200+O1;O 0015 030363 3230 IFZERO FIELDS-7&4000 < 0000 /SEGMENT FOR FIELD 6 O=ENDF60%2+60;O1=O+100%200+O1;O / > IFZERO FIELDS-6&4000 < 0000 /SEGMENT FOR FIELD 5 O=ENDF50%2+50;O1=O+100%200+O1;O / > IFZERO FIELDS-5&4000 < 0000 /SEGMENT FOR FIELD 4 O=ENDF40%2+40;O1=O+100%200+O1;O / > IFZERO FIELDS-4&4000 < 0000 /SEGMENT FOR FIELD 3 O=ENDF30%2+30;O1=O+100%200+01;O / > IFZERO FIELDS-3&4000 < 030364 0000 0000 /SEGMENT FOR FIELD 2 0120 O=ENDF20%2+20;O1=O+100%200+O1;O / > 0016 030365 0120 030366 0000 0000 /SEGMENT FOR FIELD 1 2110 O=ENDF10%2+10;O1=O+100%200+O1;O 0027 030367 2110 030370 0000 0000 /SEGMENT FOR FIELD 0 2300 O=ENDF00%2+00;O1=O+100%200+O1;O 0041 030371 2300 /THE REST OF THE FIRST BLOCK CONTAINS THE MAP OF THE FILE, E.G. /WHERE ALL TASKS IN THE TASKLIBRARY ARE STORED: 030372 0042 DSKMAP, O1+1 /OFFSET TO FIRST TASK (OVER THE SAVE PART) 030373 0000 ZBLOCK CCB+400-. /GOOD FOR AT LEAST 235 BLOCKS 0755 ENDMAP=.-1 0016 O2=LOADPT-TCBTAB%10 0064 O3=MAXNAM-O2^2 0125 SVLNGT=O1+O3 IFNZRO BGMAX < 030756 0000 COPDSK, 0 /SETUP DSKMAP /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 175-1 030757 1157 TAD [XDSKTAB-1 /COPY XDSKTAB TO DSKTAB 030760 3017 DCA AUTO17 030761 1156 TAD [DSKTAB-1 030762 3016 DCA AUTO16 030763 1155 TAD [-40 030764 3001 DCA TEMP1 030765 1417 DSKCO1, TAD I AUTO17 030766 6211 CDF 10 030767 3416 DCA I AUTO16 030770 6231 CDF BGFLD 030771 2001 ISZ TEMP1 030772 5365 JMP DSKCO1 030773 5756 JMP I COPDSK /RETURN 7600 DSKTAB=7600 /V7 NOW IN CD AREA, 17600 > 1000 PAGE /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 176 /***************************************************************** /******** T A S K B U I L D I N G P H A S E **************** /***************************************************************** /HERE STARTS THE TASKBUILDING PHASE: 031000 7240 STRT, ACM1 /IF R MULTI8, SET SWITCH TO -1 031001 3026 DCA CHAIND /IF CHAINED SET TO 0 031002 1177 TAD [NO /SET NON-RESTATABLE BIT 031003 6201 CDF 0 //IN OS8 JOB STATUS WORD 031004 3576 DCA I [JSW // 031005 6231 CDF BGFLD / 031006 1166 TAD [MULTI8 031007 3214 DCA OFSET /LOOKUP PRESENT SAVE FILE 031010 7301 AC0001 /SYS:=1 031011 6212 CIF 10 031012 4573 JMS I [7700 /CALL USR 031013 0002 LOOKUP 031014 0352 OFSET, MULTI8 /POINTER TO FILENAME/ STARTBLOCK OF FILE 031015 0000 ACTLEN, 0 /GET FILE LENGTH 031016 4563 ERR6, JMS I [ERROR /?MULTI8.SV NOT ON SYS:? 031017 2026 ISZ CHAIND /WAS IT A CHAIN ? 031020 5554 JMP I [GO /YES, START MULTI8 RIGHT AWAY 031021 6212 TKBNXT, CIF 10 /CALL COMMAND DECODER 031022 4573 JMS I [7700 / 031023 0005 CD 031024 0216 0216 /DEFAULT EXTENSION FOR TASKS IS 'BN' 031025 4553 JMS I [TSKBLD /TASKBUILD WHATEVER IS SPECIFIED 031026 6211 CDF 10 //LOOK AT ALTMODE FLAG 031027 1552 TAD I [7642 // 031030 6231 CDF BGFLD / 031031 7700 SMA CLA /FINISHED TASKBUILDING ? 031032 5221 JMP TKBNXT /NO, MORE EXPECTED 031033 4567 JMS I [SAVE /SAVE UPDATED IMAGE WITH NEW TASKS 031034 6211 CDF 10 031035 1551 TAD I [7644 031036 6231 CDF BGFLD 031037 0150 AND [2000 031040 7650 SNA CLA / /N OPTION SET ? 031041 5554 JMP I [GO /NO, GO START MULTI8 031042 6203 CDF CIF 0 031043 5547 JMP I [7600 /YES, BACK TO OS/8 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 177 /UPDATE BLOCK NUMBERS OF TASKS IN TASK CONTROL BLOCK TABLE: 031044 0000 SETBLK, 0 /ABSOLUTIZE BLOCKNUMBERS IN TCB'S 031045 6201 CDF 0 // 031046 1146 TAD [LOADPT+3 //START OF DISK RESIDENT TASKS 031047 3000 PWR1, DCA TEMP 031050 1400 TAD I TEMP //FETCH RELATIVE BLOCK NUMBER 031051 7450 SNA //IF ZERO, W'RE PAST THE LAST ONE 031052 5262 JMP PWR1A //DONE 031053 6231 CDF BGFLD / 031054 1214 TAD OFSET /ADD STARTBLOCK OF MULTI8.SV 031055 6201 CDF 0 // 031056 3400 DCA I TEMP //STORE UPDATED BLOCK NUMBER 031057 1000 TAD TEMP 031060 1145 TAD [10 //NEXT BLOCK # IS 10 WORDS FURTHER 031061 5247 JMP PWR1 //CYCLE 031062 6231 PWR1A, CDF BGFLD / 031063 5644 JMP I SETBLK /RETURN 031064 0000 LNKTCB, 0 /LINK THE FREE TCB'S 031065 6201 CDF 0 // 031066 1544 TAD I [FHEAD //ADDRESS OF FIRST FREE BLOCK 031067 3001 LNKTC1, DCA TEMP1 // 4561 O=MAXNAM^10+TCBTAB+200&7600-17 031070 1143 TAD [-O 031071 1001 TAD TEMP1 031072 7700 SMA CLA //END OF TCBTAB ? 031073 5301 JMP LNKTC2 //LAST TCB 031074 1001 TAD TEMP1 // 031075 1145 TAD [10 //COMPUTE ADDRESS OF NEXT BLOCK 031076 3401 DCA I TEMP1 //AND STORE IN LINK WORD 031077 1401 TAD I TEMP1 031100 5267 JMP LNKTC1 //NO, CYCLE 031101 3401 LNKTC2, DCA I TEMP1 //WHICH GETS A ZERO LINK 031102 6231 CDF BGFLD / 031103 5664 JMP I LNKTCB /RETURN /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 178 /LOOKUP THE SWAP-FILE 'SWPFIL.M8' IFNZRO BGMAX < 031104 0000 SETSWP, 0 /SETUP THE SWAPFILE 031105 7301 AC0001 031106 6212 CIF 10 031107 4573 JMS I [USR /LOOKUP 'SWPFIL.M8' ON SYS: 031110 0002 LOOKUP 031111 2227 SWBLOK, SWPFIL /THIS GETS THE STARTING BLOCK # 031112 0000 SWPLEN, 0 /THIS GETS MINUS THE LENGTH 031113 5331 JMP NEWSWP /NO SWAPFILE YET 031114 1311 TAD SWBLOK 031115 0142 AND [TRACK-1 /COMPUTE NUMBER OF EXTRA BLOCKS 031116 1312 TAD SWPLEN /CHECK IF SWAPFILE LONG ENOUGH IFNDEF SINGL8 < 031117 1141 TAD [BGCORE^BGMAX^20 > IFDEF SINGL8 < TAD [BGCORE^BGMAX-BGFLDS+1^20 > 031120 7740 SMA SZA CLA 031121 5331 JMP NEWSWP /MUST MAKE A LONGER SWAPFILE 031122 1311 SWAP1, TAD SWBLOK /PUT BEGIN OF SWPFIL.M8 IN 031123 1142 TAD [TRACK-1 031124 0140 AND [-TRACK 031125 6211 SETSW1, CDF 10 // 031126 3537 DCA I [BSTAB //FIRST LOC OF BSTAB 031127 6231 CDF BGFLD / 031130 5704 JMP I SETSWP /RETURN /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 179 031131 7301 NEWSWP, AC0001 /FIRST DELETE THE OLD SWPFIL 031132 6212 CIF 10 / 031133 4573 JMS I [USR / 031134 0004 CLOSE / 031135 2227 SWPFIL /POINTER TO FILE NAME 031136 0000 0 /LENGTH IS ZERO: DELETE FILE 031137 7000 NOP /MAYBE IT ISN'T THERE AT ALL 031140 7301 AC0001 /CREATE A NEW SWPFIL.M8 031141 6212 CIF 10 / 031142 4573 JMS I [USR / 031143 0003 ENTER /ENTER THE NEW FILE 031144 2227 SWPFIL /POINTER TO FILENAME 031145 0000 NEWLNG, 0 /GETS MAXIMUM LENGTH 031146 4563 ERR5, JMS I [ERROR /?CAN'T ENTER SWPFIL.M8? 031147 1344 TAD NEWLNG-1 /GET STARTING BLOCK 031150 7041 CIA /COMPUTE EXTRA BLOCKS TO ALLIGN WITH DISK 031151 0142 AND [TRACK-1 /COMPUTE NUMBER OF EXTRA BLOCKS IFNDEF SINGL8 < 031152 1141 TAD [BGCORE^BGMAX^20 > IFDEF SINGL8 < TAD [BGCORE^BGMAX-BGFLDS+1^20 > 031153 3366 DCA CLNGTH /AND STORE IN CLOSE REQUEST 031154 7120 STL / 031155 1366 TAD CLNGTH /SEE IF THERE IS ENOUGH ROOM 031156 1345 TAD NEWLNG 031157 7660 SNL SZA CLA /ENOUGH ? 031160 4563 ERR5B, JMS I [ERROR /?NO ROOM FOR SWPFIL.M8? 031161 7301 AC0001 031162 6212 CIF 10 /NOW CLOSE THE FILE 031163 4573 JMS I [USR / 031164 0004 CLOSE 031165 2227 SWPFIL 031166 0000 CLNGTH, 0 031167 4563 ERR5A, JMS I [ERROR /?CAN'T CLOSE SWPFIL.M8? 031170 1344 TAD NEWLNG-1 /GET STARTING BLOCK 031171 3311 DCA SWBLOK 031172 1366 TAD CLNGTH 031173 3312 DCA SWPLEN 031174 5322 JMP SWAP1 /CARRY ON > 1200 PAGE /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 180 IFNZRO BGMAX < 031200 2625 PTEMP1, FAKHND 031201 4372 PTEMP2, FAKSYS 031202 7644 PTEMP3, -FAKLEN 031203 3062 PTEMP4, BOBOOT 031204 3563 PTEMP5, BOOBUF 031205 7340 PTEMP6, -BOBOEND 031206 7752 PTEMP7, BOBOEND-447-17 031207 2761 PTEMP8, DEVLST 031210 7623 PTEMP9, FASSGN 031211 4410 PTEMP0, FASSGN+2-SYSHND+FAKSYS 031212 1712 PRBOOT, RBOOT 031213 0000 SETFAK, 0 /ROUTINE TO SETUP FAKEHANDLER STUFF 031214 4612 JMS I PRBOOT /READ BOOTSTRAP FROM OS8 DEV 031215 6212 CIF 10 031216 4573 JMS I [USR 031217 0010 USRIN /MOVE FAKEHANDLER OVER SYSTEM-HANDLER 031220 1600 PWR4, TAD I PTEMP1 031221 3601 DCA I PTEMP2 031222 2200 ISZ PTEMP1 031223 2201 ISZ PTEMP2 031224 2202 ISZ PTEMP3 /DONE ? 031225 5220 JMP PWR4 /NO, CYCLE 031226 6201 CDF 0 031227 1536 TAD I [7777 /GET DATE EXTENSION BITS 031230 6231 CDF BGFLD 031231 0135 AND [4707 IFNDEF SINGL8 < 031232 1134 TAD [BGFLDS-1^10+1000 /RTS8-BIT & SOFTWARE CORE SIZE > IFDEF SINGL8 < TAD [BGCORE-1^10+1000 /RTS8-BIT & SOFTWARE CORE SIZE > 031233 3533 DCA I [BGCORW /CORE-SIZE SET INITIALLY AT #FLDS-FGRND /COPY SYSTEM BOOTSTRAP 031234 1603 PWR4A, TAD I PTEMP4 031235 3604 DCA I PTEMP5 031236 2203 ISZ PTEMP4 031237 2204 ISZ PTEMP5 031240 2205 ISZ PTEMP6 031241 5234 JMP PWR4A /CLEAR DEVICE RESIDENCY TABLE 031242 3604 DCA I PTEMP5 031243 2204 ISZ PTEMP5 031244 2206 ISZ PTEMP7 031245 5242 JMP .-3 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 181 /PUT FAKEHANDLER ENTRY POINTS IN DEVICE RESIDENCY TABLE 031246 1164 TAD [SYSHND 031247 3532 DCA I [DVRSTB /ENTRYPOINT SYS: 031250 1164 TAD [SYSHND 031251 3531 DCA I [DVRSTB+1 /ENTRYPOINT DSK: 031252 5315 JMP PWR5B 031253 3263 PWR5, DCA DEVNAM 031254 2207 ISZ PTEMP8 031255 1607 TAD I PTEMP8 031256 3264 DCA DEVNAM+1 /SECOND WORD OF DEVICE NAME 031257 2207 ISZ PTEMP8 /PTEMP8 POINTS TO DEVICE TYPE 031260 6212 CIF 10 031261 4574 JMS I [200 031262 0012 INQUIRE /ASK USR WHAT INTERNAL DEVICE # IT HAS 031263 0000 DEVNAM, ZBLOCK 3 /GETS DEVICE NAME 031266 5313 JMP PWR5A /DEVICE DOES NOT EXIST, THAT'S /A PITY FOR HIM 031267 1264 TAD DEVNAM+1 /THIS IS THE INTERNAL DEV NUMBER NOW 031270 1130 TAD [DVRSTB-1 /INDEX IN DEVICE RESIDENCY TABLE /(THE ONE THAT IS IN THE BOOTBUFFER) 031271 3002 DCA TEMP2 031272 1210 TAD PTEMP9 /GET NEXT ENTRYPOINT IN FAKEHANDLER 031273 3402 DCA I TEMP2 /AND DROP IN DEVICE RESIDENCY TABLE. /SO OS/8 WILL THINK THE HANDLER IS 031274 1264 TAD DEVNAM+1 /CORESIDENT WITH SYS: 031275 1127 TAD [DVTYPT-1 031276 3002 DCA TEMP2 031277 1607 TAD I PTEMP8 031300 3402 DCA I TEMP2 /SET CORRECT DEVICE TYPE 031301 2207 ISZ PTEMP8 /POINTS TO FAKEHANDLER CODE NUMBER 031302 1607 TAD I PTEMP8 /GET CODE NUMBER 031303 3611 DCA I PTEMP0 /AND STORE IN FAKEHANDLER 031304 7325 AC0003 /ADVANCE POINTERS 031305 1210 TAD PTEMP9 031306 3210 DCA PTEMP9 031307 7325 AC0003 031310 1211 TAD PTEMP0 031311 3211 DCA PTEMP0 031312 7410 SKP 031313 2207 PWR5A, ISZ PTEMP8 031314 2207 ISZ PTEMP8 031315 1607 PWR5B, TAD I PTEMP8 031316 7440 SZA /DONE ? 031317 5253 JMP PWR5 /NO, CYCLE /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 182 031320 6212 CIF 10 031321 4574 JMS I [200 031322 0011 USROUT /DISMISS USR 031323 6202 CIF 0 031324 4564 JMS I [SYSHND 031325 4430 4400+BGFLD /WRITE THE FAKED BOOTBLOK IN BLOCK 40 031326 3563 BOOBUF 031327 0040 40 /OS/8 SCRATCH BLOCK 031330 4563 ERR8, JMS I [ERROR /?WRITING BOOBLK.M8? 031331 7200 CLA /YES 031332 5613 JMP I SETFAK /RETURN 1400 PAGE / > /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 183 /NOW WE SETUP THE FOREGROUND PAGE 0'S 031400 0000 COPYZ, 0 /SETUP FOREGROUND FIELDS PAGE ZERO 031401 1126 TAD [-FIELDS+1 031402 3001 DCA TEMP1 /COUNTER 031403 1125 PWR8, TAD [-COMPNT 031404 3002 DCA TEMP2 /COUNTER 031405 3003 DCA TEMP3 /POINTER STARTS AT ZERO 031406 6201 PWR9, CDF 00 031407 1403 TAD I TEMP3 /GET A WORD FROM 00 031410 6211 PWR10, CDF 00+10 031411 3403 DCA I TEMP3 /PUT A WORD INTO ANOTHER FIELD 031412 2003 ISZ TEMP3 /BUMP THE POINTER 031413 2002 ISZ TEMP2 /200 DONE ? 031414 5206 JMP PWR9 /NO, CYCLE 031415 1210 TAD PWR10 031416 3524 DCA I [MYCDF 031417 7301 AC0001 031420 1210 TAD PWR10 031421 3523 DCA I [MYCIF 031422 7326 AC0002 031423 1210 TAD PWR10 031424 3522 DCA I [MYCDIF 031425 1210 TAD PWR10 031426 1145 TAD [10 031427 3210 DCA PWR10 031430 2001 ISZ TEMP1 031431 5203 JMP PWR8 /NEXT FIELD 031432 6231 CDF BGFLD 031433 5600 JMP I COPYZ /RETURN /FILL IN CLRTAB WITH THE ORIGINAL CLEAR-IOT'S FROM THE SKIPCHAIN 031434 0000 COPCLR, 0 /SETUP CLRTAB 031435 6201 CDF 00 031436 1121 TAD [-INTDEV+1 031437 3022 DCA ZTEM2 /WE MAY USE THE ZTEM'S NOW! 031440 1120 TAD [CLRTAB-1 031441 3010 DCA AUTO10 031442 1117 TAD [SKP0-1+4 031443 3021 PWR12, DCA ZTEM1 031444 1421 TAD I ZTEM1 031445 3410 DCA I AUTO10 031446 1021 TAD ZTEM1 031447 1116 TAD [4 031450 2022 ISZ ZTEM2 031451 5243 JMP PWR12 031452 6231 CDF BGFLD 031453 7300 CLA CLL 031454 5634 JMP I COPCLR /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 184 IFNZRO BGMAX < /CALL: JMS SETLEN / PROG NAME POINTER / BLOCK OFFSET / - TEST VALUE OF 1'ST WORD / ADDRESS OFFSET /MAY RETURN THRU / TABLE INCREMENT /THESE TWO 031455 0000 SETLEN, 0 /PATCH PROGRAM DEVICE LENGTH TABLE 031456 1655 TAD I SETLEN 031457 3265 DCA PRGBLK /SET NAME POINTER 031460 2255 ISZ SETLEN /NEXT ARG 031461 7301 AC0001 /PROG.SV IS ON SYS: USUALLY 031462 6212 CIF 10 031463 4777 JMS I (USR /LOOKUP PROG.SV 031464 0002 LOOKUP 031465 1234 PRGBLK, 1234 031466 0000 0 /(GETS -LENGTH OF PROG.SV) 031467 5343 JMP SETEX1 /SORRY, PROG NOT FOUND 031470 7307 AC0004 /PROG MUST BE 4 BLOCKS AT LEAST 031471 1266 TAD PRGBLK+1 /GET -LENGTH OF PROG.SV 031472 7700 SMA CLA /OK ? 031473 5343 JMP SETEX1 /NO, MAYBE IT'S A SHSAVE FILE 031474 1655 TAD I SETLEN /GET BLOCK OFFSET 031475 2255 ISZ SETLEN 031476 1265 TAD PRGBLK 031477 3306 DCA PRGB1 031500 1306 TAD PRGB1 031501 3340 DCA PRGB2 031502 6202 CIF 0 031503 4776 JMS I (SYSHND 031504 0230 200+BGFLD /READ 1 BLOCK IN THIS FIELD 031505 5600 PRGBUF, BUFST /USE INPUT BUFFER OF TSKBLD 031506 0000 PRGB1, 0 /GETS BLOCK NUMBER 031507 5344 JMP SETEX2 /SORRY, YOUR PROG IS POOH 031510 1655 TAD I SETLEN /GET TEST VALUE 031511 2255 ISZ SETLEN 031512 1705 TAD I PRGBUF /TEST FIRST VALUE OF BUFFER 031513 7640 SZA CLA /OK? 031514 5345 JMP SETEX /NO, BAD VERSION: FALL THRU ARGS 031515 1375 TAD (-10 031516 3306 DCA PRGB1 /FOR A COUNTER 031517 1374 TAD (LNGLST-1-BGNUMB+BOBOOT 031520 3010 DCA AUTO10 /RELOCATED IN BOOT BLOCK 031521 1655 TAD I SETLEN /GET ADDRESS OFFSET 031522 2255 ISZ SETLEN 031523 1373 TAD (BUFST 031524 3265 DCA PRGBLK 031525 1410 PRGLOP, TAD I AUTO10 031526 3665 DCA I PRGBLK 031527 1655 TAD I SETLEN /ADD INCREMENT 031530 1265 TAD PRGBLK 031531 3265 DCA PRGBLK 031532 2306 ISZ PRGB1 031533 5325 JMP PRGLOP /ENTER DEVICE LENGTH FOR DEV 50-57 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 184-1 031534 6202 CIF 0 031535 4776 JMS I (SYSHND /AND WRITE IT BACK TO PROG 031536 4230 4200+BGFLD 031537 5600 BUFST 031540 0000 PRGB2, 0 031541 5345 JMP SETEX /WRITE ERROR ? PITY 031542 5345 JMP SETEX 031543 2255 SETEX1, ISZ SETLEN 031544 2255 SETEX2, ISZ SETLEN 031545 7200 SETEX, CLA 031546 5655 JMP I SETLEN /RETURN > 031573 5600 031574 3062 031575 7770 031576 7607 031577 7700 1600 PAGE /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 185 GO, 031600 4777 IFNZRO BGMAX <JMS I (SETPIP /PATCH PIP DEVICE LENGTH TABLE > 031601 4776 JMS I (SETDMP /SETUP TO RUN MONDUM @ 7757 031602 4775 JMS I (PDPTST /CHECK THE AVAILABLE HARDWARE IFNZRO BGMAX < 031603 4774 JMS I (SETSWP /CREATE SWAPFILE 031604 4773 JMS I (SETMEM /SETUP BSTAB FOR AVAILABLE MEMORY 031605 4772 JMS I (SETFAK /SETUP FAKE HANDLER 031606 4771 JMS I (COPDSK /SETUP DSKTAB > 031607 4770 JMS I (SETBLK /RELOCATE TASK BLOCK NUMBERS 031610 4767 JMS I (COPCLR /COPY CLEARIOTS IN CLRTAB 031611 4766 IFNZRO BGMAX <JMS I (SETTRP /SETUP THE MMU > /NOW COMES A DIRTY PIECE OF CODE, THAT INITIALIZES ALL SORTS /OF PERIPHERALS; MAYBE YOU HAVE TO EDIT THIS PART FOR YOUR /SPECIALTIES ! 031612 6007 CAF 031613 6046 TLS /THATS AN EASY ONE IFDEF KL8E2 < 6016+KL8E2 / > IFDEF KL8E3 < 6016+KL8E3 / > IFDEF KL8E4 < 6016+KL8E4 / > IFDEF KL8E5 < 6016+KL8E5 / > IFDEF KL8E6 < 6016+KL8E6 / > IFDEF KL8E7 < 6016+KL8E7 / > 031614 7200 CLA IFDEF PP8E < 6024 / > IFDEF LE8E < IFZERO LE8E&1 < 6666 / > 031615 6574 IFNZRO LE8E&1 < 6574 / >> IFDEF DR8EA1 <DR8EA1+6000 /DISABLE INTERRUPTS > IFDEF DR8EA2 <DR8EA2+6000 /DISABLE INTERRUPTS > IFDEF KL8A1 < KL8A1+6010 TAD (KL8TAB KL8A1+6012 AC0001 KL8A1+6000 / > IFDEF KL8A2 < KL8A2+6010 TAD (KL8TAB+10 KL8A2+6012 AC0001 KL8A2+6000 / > /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 186 /STARTING THE CLOCKS: IFDEF RFCLOCK < 6601 TAD (RFINTS 6615 / > IFDEF DK8EA < DK8EA+6001 / > IFDEF DK8EB < DK8EB+6003 / > IFDEF DK8EC < DK8EC+6001 / > IFDEF DK8EP < IFNDEF DK8EA < IFNDEF DK8EB < IFNDEF DK8EC < IFNDEF DKC8AA < 031616 1365 TAD (-1750 031617 6133 6003+DK8EP /AC IS NOT CLEARED, BUT ... 031620 1115 TAD [5410+1750 031621 6132 6002+DK8EP 031622 7200 CLA / >>>>> IFDEF DKC8AA < AC0001 6135 CLA / > IFDEF AX08 < 6364 ISZ .-1 JMP .-1 6362 /CLEAR ADC DONE FLAG CLA /? > IFDEF FPP < AC2000 /SEE IF M&S FPP INSTALLED 6144 /SEMO DP AS TRIAL SNA CLA /DID IT CLEAR AC ? JMP .+5 /YES, OK TAD (FPICL+2&177+5200 /NO, DO 'JMP FPICL+2' SO THAT CDF 10 DCA I (FPST+2 /FPSTART DOES NOT SKIP, BUT 'JMP EMREDY' CDF BGFLD / > /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 187 /NOW WE WILL SCHEDULE THE AUTO-START TASKS TO GET THE WORLD /GOING. BECAUSE THIS POWERUP CODE IS NOT IN A /FOREGROUND FIELD, WE CAN'T SIMULATE IT TO BE A TASK, /THAT CALLS THE OTHER TASKS. THUS WE MUST STRING THEM /IN THE SYSTEM'S QUEUE'S AND SET THEIR BACKLINK BUSY /'BY HAND'. 031623 1114 TAD [TCBTAB+1 /LOOK FOR EACH TASKS' THREAD IN 031624 3001 DCA TEMP1 /HIS TCBP. IF NONZERO HE MUST BE STARTED 031625 1113 TAD [-MAXNAM 031626 3022 DCA TEMP7 /COUNTER 031627 6201 PWR14, CDF 0 031630 1401 TAD I TEMP1 031631 7650 SNA CLA /AUTO-START ? 031632 5256 JMP PWR15 /NO TRY NEXT ONE 031633 7240 ACM1 031634 1001 TAD TEMP1 031635 3002 DCA TEMP2 031636 7301 AC0001 031637 3402 DCA I TEMP2 /SET HIS BACKLINK TO 'RUNNED' 031640 1512 TAD I [MTAIL /PUT HIM ON THE MAINQUEUE 031641 3002 DCA TEMP2 031642 1001 TAD TEMP1 031643 3402 DCA I TEMP2 031644 1001 TAD TEMP1 031645 3512 DCA I [MTAIL 031646 3401 DCA I TEMP1 031647 2001 ISZ TEMP1 031650 1001 TAD TEMP1 031651 1111 TAD [5 031652 3002 DCA TEMP2 /ADDRESS OF PC 031653 1401 TAD I TEMP1 /GET HIS START ADDRESS 031654 3402 DCA I TEMP2 /AND DROP IT INTO HIS PC 031655 7240 ACM1 031656 1001 PWR15, TAD TEMP1 /GET POINTER AND 031657 1145 TAD [10 031660 3001 DCA TEMP1 /ADVANCE TO NEXT THREAD 031661 2022 ISZ TEMP7 /ALL TASKS DONE ? 031662 5227 JMP PWR14 /NO 031663 6203 CDF CIF 00 031664 5510 JMP I [DISPATCH /............... /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 188 IFNZRO BGMAX < 031665 0000 SETTRP, 0 /SETUP THE TRAP/UNTRAP RAM 031666 1173 TAD [-100 031667 3021 DCA ZTEM1 031670 1107 TAD [6000 031671 3022 DCA ZTEM2 031672 1022 TAD ZTEM2 031673 6235 6235 /LOAD TRAP REGISTER, CLA 031674 1022 TAD ZTEM2 031675 1145 TAD [10 031676 2021 ISZ ZTEM1 031677 5271 JMP .-6 031700 7200 CLA 031701 1106 TAD [TRPTAB-1 031702 3010 DCA AUTO10 031703 1410 TAD I AUTO10 031704 7450 SNA 031705 5310 JMP .+3 031706 6235 6235 /LOAD TRAP REGISTER, CLA 031707 5303 JMP .-4 031710 6265 6265 /ENABLE MEMORY MANAGEMENT ! 031711 5665 JMP I SETTRP /RETURN 031712 0000 RBOOT, 0 /READ BOOTSTRAP 031713 6202 CIF 0 031714 4564 JMS I [SYSHND 031715 0230 200+BGFLD 031716 4163 BOOBUF+400 031717 0000 0 031720 5334 JMP ERR2 031721 6201 CDF 0 031722 7346 AC7775 031723 1736 TAD I P7612 /TEST IF 2 PAGE SYS HANDLER 031724 6231 CDF BGFLD 031725 7640 SZA CLA 031726 5712 JMP I RBOOT /IT WAS'NT 031727 6202 CIF 0 031730 4564 JMS I [SYSHND /IT WAS, READ 17600 PART 031731 0130 100+BGFLD 031732 4163 BOOBUF+400 031733 0066 66 /FROM BLOCK 66 031734 4563 ERR2, JMS I [ERROR /?READING BLOCK 0 (OR 66)? 031735 5712 JMP I RBOOT 031736 7612 P7612, 7612 > 031765 6030 031766 1665 031767 1434 031770 1044 031771 0756 031772 1213 031773 2035 031774 1104 031775 2065 031776 2000 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 188-1 031777 2200 2000 PAGE /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 189 032000 0000 SETDMP, 0 /SETUP .R MONDUM 032001 7301 AC0001 032002 6212 CIF 10 032003 4573 JMS I [USR /LOOKUP MONDUM.SV 032004 0002 LOOKUP 032005 2031 DMPBLK, MONDUM 032006 0000 0 032007 5600 JMP I SETDMP /MONDUM.SV NOT FOUND 032010 1105 TAD [CIF CDF BGFLD /RUN MONDUM IN FIRST BG FIELD 032011 6201 CDF 0 IFNZRO OS8-40 < DCA I [7772 /STARTING FIELD > IFZERO OS8-40 < 032012 3504 DCA I [7773 /STARTING FIELD V40 > 032013 1103 TAD [201 /MONDUM CHAIN ADDRESS 032014 3521 DCA I [7775 032015 1205 TAD DMPBLK 032016 7001 IAC 032017 3502 DCA I [7762 /BLOCK NUMBER 032020 3501 DCA I [7761 032021 1100 TAD [1000+BGFLD 032022 3540 DCA I [7760 /FUNCTION WORD [READ 10 PAGES) 032023 1077 TAD [5372 032024 3476 DCA I [7764 032025 1164 TAD [SYSHND 032026 3475 DCA I [7756 032027 6231 CDF BGFLD 032030 5600 JMP I SETDMP 032031 1517 MONDUM, FILENAME MONDUM.SV 032032 1604 032033 2515 032034 2326 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 190 IFNZRO BGMAX < /ROUTINE TO ENABLE MEMORY FIELDS THAT SEEM TO BE PRESENT IN /THIS MACHINE. 032035 0000 SETMEM, 0 032036 1074 TAD [-BGFLDS+1 032037 3000 DCA TEMP /COUNT FIELD BGFLD+1 ... 7 032040 1073 TAD [CDF BGFLD+10 032041 3244 DCA SETMM1 /CDF TO FIRST FIELD TO TEST 032042 1072 TAD [BSTAB+1+1 032043 3001 DCA TEMP1 /POINTER TO CORRESPONDING BSTAB ENTRY 032044 6201 SETMM1, CDF 032045 1245 TAD . /THERE IT IS AGAIN, LARY 032046 3544 DCA I [FHEAD /SOME PAGE ZERO LOCATION 032047 1544 TAD I [FHEAD 032050 6211 CDF 10 032051 7650 SNA CLA 032052 7240 ACM1 /LOCK BAD FIELDS 032053 7440 SZA 032054 3401 DCA I TEMP1 / 032055 2001 ISZ TEMP1 032056 1244 TAD SETMM1 032057 1145 TAD [10 032060 3244 DCA SETMM1 /NEXT FIELD 032061 2000 ISZ TEMP /ALL DONE ? 032062 5244 JMP SETMM1 /NO, CONTINUE 032063 6231 CDF BGFLD /YES, RETURN 032064 5635 JMP I SETMEM / > 032065 0000 PDPTST, 0 /A SUBROUTINE THAT TESTS IF WE ARE 032066 7300 CLA CLL /AT A REASONABLE KIND OF MACHINE. /TEST IF WE WORK IN THE BACKGROUND. (6254 ONLY FOR MULTI8) 032067 6042 TCF 032070 6041 TSF 032071 7410 SKP 032072 4563 ERR0, JMS I [ERROR /?VIRTUIAL MACHINE? IFNZRO BGMAX < 032073 6225 6225 /SKIP IF MEMORY MANAGEMENT INSTALLED 032074 4563 ERR7, JMS I [ERROR /*?MEMORY MANAGEMENT?* > 032075 5665 JMP I PDPTST /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 191 032076 0000 ERROR, 0 /GENERAL ERROR MESSAGE HANDLER 032077 7300 CLA CLL 032100 6231 CDF BGFLD /YOU NEVER KNOW 032101 1071 TAD [ERRLST-1 032102 3010 DCA AUTO10 032103 1276 TAD ERROR 032104 7041 CIA 032105 7001 IAC 032106 3276 DCA ERROR 032107 1410 ERRLOP, TAD I AUTO10 032110 7440 SZA /TEST FOR END OF LIST 032111 1276 TAD ERROR 032112 7650 SNA CLA 032113 5317 JMP ERRFND /THIS MUST BE THE ERROR 032114 2010 ISZ AUTO10 032115 2010 ISZ AUTO10 032116 5307 JMP ERRLOP 032117 1410 ERRFND, TAD I AUTO10 032120 3322 DCA .+2 032121 4327 JMS TXTOUT /PRINT THE MESSAGE 032122 0000 0 032123 4362 JMS CRLF 032124 1410 TAD I AUTO10 032125 3276 DCA ERROR 032126 5676 JMP I ERROR /GO TO CONTINUATION ADDRESS 032127 0000 TXTOUT, 0 032130 7300 CLA CLL 032131 6231 CDF BGFLD 032132 1727 TAD I TXTOUT /GET POINTER TO STRING 032133 3353 DCA TXTPNT 032134 2327 ISZ TXTOUT 032135 1753 TXT1, TAD I TXTPNT 032136 7420 SNL 032137 7002 BSW 032140 0070 AND [77 032141 7450 SNA /END OF STRING ? 032142 5727 JMP I TXTOUT /YES, QUIT 032143 1067 TAD [240 032144 0070 AND [77 032145 1067 TAD [240 032146 4354 JMS OUT 032147 7020 CML 032150 7420 SNL 032151 2353 ISZ TXTPNT 032152 5335 JMP TXT1 032153 0000 TXTPNT, 0 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 192 032154 0000 OUT, 0 032155 6046 TLS 032156 6041 TSF 032157 5356 JMP .-1 032160 7200 CLA 032161 5754 JMP I OUT 032162 0000 CRLF, 0 032163 1066 TAD [215 032164 4354 JMS OUT 032165 1065 TAD [212 032166 4354 JMS OUT 032167 5762 JMP I CRLF 2200 PAGE /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 193 IFNZRO BGMAX < 032200 0000 SETPIP, 0 032201 4616 JMS I PSETL /SET LENGHTS IN PIP 032202 2217 PIPNAM 032203 0004 4 /BLOCK 4 032204 7010 -770 /TEST 032205 0250 50+200 /ADDRESS 032206 0001 1 /INCREMENT 032207 4616 JMS I PSETL /SET LENGTHS IN RESORC 032210 2223 RESNAM 032211 0007 7 032212 5354 -2424 032213 0242 50^4+2 032214 0004 4 032215 5600 JMP I SETPIP 032216 1455 PSETL, SETLEN 032217 2011 PIPNAM, FILENAME PIP.SV 032220 2000 032221 0000 032222 2326 032223 2205 RESNAM, FILENAME RESORC.SV / > 032224 2317 032225 2203 032226 2326 032227 2327 SWPFIL, FILENAME SWPFIL.M8 032230 2006 032231 1114 032232 1570 032233 6203 E, CDF CIF 0 032234 5547 JMP I [7600 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 194 ERRLST, /LIST OF ERROR ADRESSES, STRING POINTERS AND CONTINUATION /ADDRESSES: 032235 2072 ERR0;MSG0;E 032236 2353 032237 2233 IFNZRO BGMAX < 032240 1734 ERR2;MSG2;E > 032241 2364 032242 2233 032243 0256 ERR3;MSG3;E 032244 2401 032245 2233 032246 0300 ERR3A;MSG3;E 032247 2401 032250 2233 032251 0327 ERR4;MSG4;E 032252 2411 032253 2233 032254 0334 ERR4A;MSG4;E 032255 2411 032256 2233 IFNZRO BGMAX < 032257 1146 ERR5;MSG5;E 032260 2425 032261 2233 032262 1167 ERR5A;MSG5;E 032263 2425 032264 2233 032265 1160 ERR5B;MSG5;E > 032266 2425 032267 2233 032270 1016 ERR6;MSG6;E 032271 2441 032272 2233 IFNZRO BGMAX < 032273 2074 ERR7;MSG7;E 032274 2455 032275 2233 032276 1330 ERR8;MSG8;E > 032277 2401 032300 2233 032301 5421 ERR9;MSG9;E 032302 2467 032303 2233 032304 5440 ERR10;MSG10;E 032305 2503 032306 2233 032307 4652 ERR21;MSG21;E 032310 2512 032311 2233 032312 4657 ERR21A;MSG21;E 032313 2512 032314 2233 032315 4664 ERR21B;MSG21;E 032316 2512 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 194-1 032317 2233 032320 5250 ERR22;MSG22;E 032321 2523 032322 2233 032323 5132 ERR23;MSG23;E 032324 2532 032325 2233 032326 0315 ERR23A;MSG23;E 032327 2532 032330 2233 032331 4673 ERR25;MSG25;E 032332 2545 032333 2233 032334 4731 ERR26;MSG26;E 032335 2553 032336 2233 032337 4766 ERR27;MSG27;E 032340 2562 032341 2233 032342 4751 ERR28;MSG28;E 032343 2574 032344 2233 032345 5147 ERR29;MSG29;E 032346 2605 032347 2233 /END OF ERROR LIST: 032350 0000 0;MSG99;E 032351 2614 032352 2233 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 195 032353 7726 MSG0, TEXT *?VIRTUAL MACHINE?* 032354 1122 032355 2425 032356 0114 032357 4015 032360 0103 032361 1011 032362 1605 032363 7700 032364 7722 MSG2, TEXT *?READING BLOCK 0 (OR 66)?* 032365 0501 032366 0411 032367 1607 032370 4002 032371 1417 032372 0313 032373 4060 032374 4050 032375 1722 032376 4066 032377 6651 032400 7700 MSG8, MSG11, 032401 7727 MSG3, TEXT *?WRITING SYS:?* 032402 2211 032403 2411 032404 1607 032405 4023 032406 3123 032407 7277 032410 0000 032411 7716 MSG4, TEXT *?NO ROOM FOR MULTI8.SV?* 032412 1740 032413 2217 032414 1715 032415 4006 032416 1722 032417 4015 032420 2514 032421 2411 032422 7056 032423 2326 032424 7700 032425 7716 MSG5, TEXT *?NO ROOM FOR SWPFIL.M8?* 032426 1740 032427 2217 032430 1715 032431 4006 032432 1722 032433 4023 032434 2720 032435 0611 032436 1456 032437 1570 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 195-1 032440 7700 MSG6, IFNDEF SINGL8 < 032441 7715 TEXT *?MULTI8.SV NOT ON SYS:?* / > 032442 2514 032443 2411 032444 7056 032445 2326 032446 4016 032447 1724 032450 4017 032451 1640 032452 2331 032453 2372 032454 7700 IFDEF SINGL8 < TEXT *?ZM16.SV NOT ON SYS:?* / > 032455 7715 MSG7, TEXT *?MEMORY MANAGEMENT?* 032456 0515 032457 1722 032460 3140 032461 1501 032462 1601 032463 0705 032464 1505 032465 1624 032466 7700 032467 7716 MSG9, TEXT *?NON-RESIDENT HANDLER?* 032470 1716 032471 5522 032472 0523 032473 1104 032474 0516 032475 2440 032476 1001 032477 1604 032500 1405 032501 2277 032502 0000 032503 7722 MSG10, TEXT *?READ ERROR?* 032504 0501 032505 0440 032506 0522 032507 2217 032510 2277 032511 0000 032512 7720 MSG21, TEXT *?PREAMBLE ERROR?* 032513 2205 032514 0115 032515 0214 032516 0540 032517 0522 032520 2217 032521 2277 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 195-2 032522 0000 032523 7702 MSG22, TEXT *?BAD BINARY?* 032524 0104 032525 4002 032526 1116 032527 0122 032530 3177 032531 0000 032532 7715 MSG23, TEXT *?MULTI8.SV TOO SHORT?* 032533 2514 032534 2411 032535 7056 032536 2326 032537 4024 032540 1717 032541 4023 032542 1017 032543 2224 032544 7700 032545 7703 MSG25, TEXT *?CHECKSUM?* 032546 1005 032547 0313 032550 2325 032551 1577 032552 0000 032553 7724 MSG26, TEXT *?TASK LENGTH?* 032554 0123 032555 1340 032556 1405 032557 1607 032560 2410 032561 7700 032562 7724 MSG27, TEXT *?TASK LIBRARY FULL?* 032563 0123 032564 1340 032565 1411 032566 0222 032567 0122 032570 3140 032571 0625 032572 1414 032573 7700 032574 7716 MSG28, TEXT *?NAME LIST FULL?* 032575 0115 032576 0540 032577 1411 032600 2324 032601 4006 032602 2514 032603 1477 032604 0000 032605 7727 MSG29, TEXT *?WRITE ERROR?* 032606 2211 032607 2405 032610 4005 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 195-3 032611 2222 032612 1722 032613 7700 032614 7725 MSG99, TEXT *?UNDEFINED ERROR?* 032615 1604 032616 0506 032617 1116 032620 0504 032621 4005 032622 2222 032623 1722 032624 7700 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 196 0015 FAKVER="M&77 IFNZRO BGMAX < 7607 FAKHND, RELOC SYSHND 037607* 0015 FSYS, FAKVER /ENTRY SYSTEM HANDLER 037610* 4270 JMS FGENIO 037611* 0000 00 /AC-CODE^10+UNIT BITS 037612* 0015 FAKVER 037613* 4270 JMS FGENIO 037614* 0001 01 037615* 0015 FAKVER 037616* 4270 JMS FGENIO 037617* 0002 02 037620* 0015 FAKVER 037621* 4270 JMS FGENIO 037622* 0003 03 037623* 0015 FASSGN, FAKVER 037624* 4270 JMS FGENIO 037625* 0000 0 037626* 0015 FAKVER 037627* 4270 JMS FGENIO 037630* 0000 0 037631* 0015 FAKVER 037632* 4270 JMS FGENIO 037633* 0000 0 037634* 0015 FAKVER 037635* 4270 JMS FGENIO 037636* 0000 0 037637* 0015 FAKVER 037640* 4270 JMS FGENIO 037641* 0000 0 037642* 0015 FAKVER 037643* 4270 JMS FGENIO 037644* 0000 0 037645* 0015 FAKVER 037646* 4270 JMS FGENIO 037647* 0000 0 037650* 0015 FAKVER 037651* 4270 JMS FGENIO 037652* 0000 0 037653* 0015 FAKVER 037654* 4270 JMS FGENIO 037655* 0000 0 037656* 0015 FAKVER 037657* 4270 JMS FGENIO 037660* 0000 0 037661* 0015 FAKVER 037662* 4270 JMS FGENIO 037663* 0000 0 037664* 0015 FAKVER 037665* 4270 JMS FGENIO 037666* 0000 0 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 197 M8BITS, IFNZRO .-7667 <XERROR> /SOME OPTION BITS THAT BG PROGRAMS MAY /WANT TO KNOW. 0000 O=0 4000 IFDEF DKUSED <O=O+4000 /BIT 0 IS DKUSED > IFDEF SINGL8 <O=O+2000 /BIT 1 SHOWS SINGL8 > IFDEF UBITS <O=UBITS&77+O /FREE BITS FOR USER APPLICATIONS: /EG. SPECIFY ONE OF SEVERAL INSTALLATIONS > 037667* 4000 O /THERE WE ARE ! 037670* 0000 FGENIO, 0 /SETUP DTV,ISUE 6000 037671* 7344 ACM2 037672* 1270 TAD FGENIO /AC POINTS TO ENTRY OF HANDLER 037673* 1340 TAD F1400 /FORM TAD FSYS, TAD FDTA0,... 037674* 3275 DCA FGTMP /EXECUTE INLINE 037675* 0000 FGTMP, 0 /INSTRUCTION OR POINTER 037676* 3275 DCA FGTMP /FGTMP IS MOVED ENTRY NOW 037677* 1675 TAD I FGTMP /GET FUNCTION 037700* 2275 ISZ FGTMP 037701* 3330 DCA FUNC /FIRST WORD OF DTV 037702* 1675 TAD I FGTMP /GET CORE ADDRESS 037703* 2275 ISZ FGTMP 037704* 3331 DCA FUNC+1 037705* 1675 TAD I FGTMP /GET BLOCK 037706* 2275 ISZ FGTMP 037707* 3332 DCA FUNC+2 037710* 6214 RDF /SET RETURN FIELD 037711* 6201 CDF 0 037712* 1337 TAD FCDIF 037713* 3335 DCA FEXIT 037714* 1670 TAD I FGENIO 037715* 0342 AND F0076 / 037716* 7640 SZA CLA /SYS: OR DSK0: ? 037717* 6031 KSF /FLAG UP ? 037720* 5325 JMP FGNOSYS /NO, DON'T TEST 037721* 6034 KRS /YES 037722* 1341 TAD FM203 /TYPED ^C ? 037723* 7650 SNA CLA 037724* 5200 JMP 7600 /YES, NO TRANSFER 037725* 1670 FGNOSYS,TAD I FGENIO /GET UNIT+FUNCTION 037726* 6000 6000 /THE REST IS NOT OUR BISNESS 037727* 5333 JMP .+4 /SKIP THE PARAMETER WORDS 037730* 0000 FUNC, ZBLOCK 3 /THE 3 PARAMETERS 037733* 7450 SNA /ERROR ? 037734* 2275 ISZ FGTMP /NORMAL RETURN 037735* 6203 FEXIT, CDF CIF /CDF CIF RETURN 037736* 5675 JMP I FGTMP /RETURN 037737* 6203 FCDIF, CIF CDF 0 037740* 1400 F1400, 1400 037741* 7575 FM203, -203 037742* 0076 F0076, 0076 0134 FAKLEN=.-SYSHND /LENGTH OF FAKEHANDLER CODE IFNZRO 7743-.&4000 <FAKERR,XERROR> 2761 RELOC /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 198 DEVLST, IFDEF TC08 <TAPEDCB=4160> 4210 IFDEF TD8E <TAPEDCB=4210> IFDEF TAPE < 032761 0424 DEVICE DTA0;TAPEDCB;DTACHN+0 032762 0160 032763 4210 032764 0020 032765 0424 DEVICE DTA1;TAPEDCB;DTACHN+1 032766 0161 032767 4210 032770 0021 032771 0424 DEVICE DTA2;TAPEDCB;DTACHN+2 032772 0162 032773 4210 032774 0022 032775 0424 DEVICE DTA3;TAPEDCB;DTACHN+3 032776 0163 032777 4210 033000 0023 033001 0424 DEVICE DTA4;TAPEDCB;DTACHN+4 033002 0164 033003 4210 033004 0024 033005 0424 DEVICE DTA5;TAPEDCB;DTACHN+5 033006 0165 033007 4210 033010 0025 033011 0424 DEVICE DTA6;TAPEDCB;DTACHN+6 033012 0166 033013 4210 033014 0026 033015 0424 DEVICE DTA7;TAPEDCB;DTACHN+7 033016 0167 033017 4210 033020 0027 > IFDEF LPT < 033021 1420 DEVICE LPT;1040;LPTCHN+0 033022 2400 033023 1040 033024 0030 > IFDEF RX01 <RXDCB=4250> IFDEF RX02 <RXDCB=4320> IFDEF RXA < IFNDEF SYRX02 < DEVICE RXA0;RXDCB;RXACHN+0 DEVICE RXA1;RXDCB;RXACHN+1 > IFDEF SYRXO2 < DEVICE RXA1;RXDCB;SYSCHN+1 /RXA1 IS PUBLIC IN SINGL8 DEVICE RXA2;RXDCB;RXACHN+0 DEVICE RXA3;RXDCB;RXACHN+1 > /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 198-1 DEVICE RBA0;4410;RXACHN+2 DEVICE RBA1;4410;RXACHN+3 /BYTE MODE FLOPPY > IFDEF SYRK8E < DEVICE RKB0;4230;SYSCHN+1 DEVICE RKA1;4230;SYSCHN+2 DEVICE RKB1;4230;SYSCHN+3 DEVICE RKA2;4230;SYSCHN+4 DEVICE RKB2;4230;SYSCHN+5 DEVICE RKA3;4230;SYSCHN+6 DEVICE RKB3;4230;SYSCHN+7 > IFDEF SY3040 < 033025 2213 DEVICE RKB0;4400;SYSCHN+1 033026 0260 033027 4400 033030 0011 033031 2213 DEVICE RKA1;4400;SYSCHN+2 033032 0161 033033 4400 033034 0012 033035 2213 DEVICE RKB1;4400;SYSCHN+3 033036 0261 033037 4400 033040 0013 033041 2213 DEVICE RKA2;4400;SYSCHN+4 033042 0162 033043 4400 033044 0014 033045 2213 DEVICE RKB2;4400;SYSCHN+5 033046 0262 033047 4400 033050 0015 033051 2213 DEVICE RKA3;4400;SYSCHN+6 033052 0163 033053 4400 033054 0016 033055 2213 DEVICE RKB3;4400;SYSCHN+7 033056 0263 033057 4400 033060 0017 > IFDEF NSRK8E < DEVICE RKA0;4230;DSKCHN+0 DEVICE RKB0;4230;DSKCHN+1 DEVICE RKA1;4230;DSKCHN+2 DEVICE RKB1;4230;DSKCHN+3 DEVICE RKA2;4230;DSKCHN+4 DEVICE RKB2;4230;DSKCHN+5 DEVICE RKA3;4230;DSKCHN+6 DEVICE RKB3;4230;DSKCHN+7 > IFDEF SYRL01 < DEVICE RL0B;4260;SYSCHN+1 DEVICE RL1A;4260;SYSCHN+2 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 198-2 DEVICE RL1B;4260;SYSCHN+3 DEVICE RL2A;4260;SYSCHN+4 DEVICE RL2B;4260;SYSCHN+5 DEVICE RL3A;4260;SYSCHN+6 DEVICE RL3B;4260;SYSCHN+7 DEVICE RL0C;4310;RLCCHN+0 DEVICE RL1C;4310;RLCCHN+1 DEVICE RL2C;4310;RLCCHN+2 DEVICE RL3C;4310;RLCCHN+3 > IFDEF NSRL01 < DEVICE RL0A;4260;DSKCHN+0 DEVICE RL0B;4260;DSKCHN+1 DEVICE RL1A;4260;DSKCHN+2 DEVICE RL1B;4260;DSKCHN+3 DEVICE RL2A;4260;DSKCHN+4 DEVICE RL2B;4260;DSKCHN+5 DEVICE RL3A;4260;DSKCHN+6 DEVICE RL3B;4260;DSKCHN+7 DEVICE RL0C;4310;RLCCHN+0 DEVICE RL1C;4310;RLCCHN+1 DEVICE RL2C;4310;RLCCHN+2 DEVICE RL3C;4310;RLCCHN+3 > IFDEF CRD < CDRPAT, DEVICE CDR;2030;CRDCHN+0 /MUST BE THE LAST IN THE LIST !!! > 033061 0000 0000 /END OF LIST ! /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 199 7000 BOBOOT, RELOC 7000 037000* 0000 BGNUMB, 0 /GETS DEVICE TYPE ON BOOT OR RESTORE LNGLST, /LIST OF DISK LENGTH'S 037001* 1520 -SIZE0 /DSK0: = SYS: 037002* 1520 -SIZE1 /DSK1: 037003* 4650 -SIZE2 /DSK2: 037004* 4650 -SIZE3 /DSK3: 037005* 1520 -SIZE4 /DSK4: 037006* 1520 -SIZE5 /DSK5: 037007* 1520 -SIZE6 /DSK6: 037010* 1520 -SIZE7 /DSK7: 037011* 0000 BOTRNS, 0 /LOCAL 'HANDLER' TO KEEP SYS: VIRGIN 037012* 3235 DCA TRTEMP 037013* 1611 TAD I BOTRNS 037014* 2211 ISZ BOTRNS 037015* 3227 DCA BOCALL 037016* 1611 TAD I BOTRNS 037017* 2211 ISZ BOTRNS 037020* 3230 DCA BOCALL+1 037021* 1611 TAD I BOTRNS 037022* 2211 ISZ BOTRNS 037023* 3231 DCA BOCALL+2 037024* 1235 TAD TRTEMP 037025* 6000 6000 037026* 5232 JMP .+4 037027* 0000 BOCALL, ZBLOCK 3 037032* 7440 SZA 037033* 7402 HLT 037034* 5611 JMP I BOTRNS 037035* 0000 TRTEMP, 0 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 200 037036* 0000 ASKDIR, 0 /ASK PERMISSION TO ZERO THE DIRECTORY 037037* 4211 JMS BOTRNS /READ DIRECTORY FROM THIS SYS: 037040* 0200 200 037041* 0000 0 037042* 0001 1 037043* 1001 TAD 1 /LOOK AT INITIAL BLOCK 037044* 1377 TAD (-70 /IS IT A SYSTEM DIRECTORY? 037045* 7650 SNA CLA 037046* 5636 JMP I ASKDIR /YES, GO ON 037047* 1274 BTXT1, TAD ZEROMS /NO, WRITE MESSAGE FOR OK TO ZERO 037050* 2247 ISZ BTXT1 / 037051* 6046 TLS / 037052* 7640 SZA CLA / 037053* 5247 JMP BTXT1 / 037054* 6032 KCC / 037055* 6031 KSF /WAIT FOR ANSWER 037056* 5255 JMP .-1 / 037057* 6036 KRB / 037060* 0376 AND (337 /STRIP LOWERCASE BIT 037061* 1375 TAD (-"Y / 037062* 7440 SZA / 037063* 1374 TAD ("Y-"J / 037064* 7640 SZA CLA / 037065* 7402 HLT /STOP THIS THING ...!!! 037066* 1373 TAD (215 /CRLF 037067* 6046 TLS / 037070* 1372 TAD (212-215 / 037071* 6046 TLS / 037072* 2236 ISZ ASKDIR /'ZERO' RETURN 037073* 5636 JMP I ASKDIR /AC RANDOM ! ZEROMS, IFNDEF GERMAN < "N;"O;" ;"v;"a;"l;"i;"d;" ;"d;"i;"r;"e;"c;"t;"o;"r;"y;" ;"o "n;" ;"t;"h;"i;"s;" ;"a;"r;"e;"a;" ;"-;" ;"s;"h;"a;"l "l;" ;"I;" ;"Z;"E;"R;"O;" ;"i;"t;" ;"?;" ;0 / > IFDEF GERMAN < 037074* 0313 "K;"E;"I;"N;" ;"V;"e;"r;"z;"e;"i;"c;"h;"n;"i;"s;" ;"a;"u 037075* 0305 037076* 0311 037077* 0316 037100* 0240 037101* 0326 037102* 0345 037103* 0362 037104* 0372 037105* 0345 037106* 0351 037107* 0343 037110* 0350 037111* 0356 037112* 0351 037113* 0363 037114* 0240 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 200-1 037115* 0341 037116* 0365 037117* 0346 "f;" ;"d;"i;"e;"s;"e;"m;" ;"B;"e;"r;"e;"i;"c;"h;" ;"- 037120* 0240 037121* 0344 037122* 0351 037123* 0345 037124* 0363 037125* 0345 037126* 0355 037127* 0240 037130* 0302 037131* 0345 037132* 0362 037133* 0345 037134* 0351 037135* 0343 037136* 0350 037137* 0240 037140* 0255 037141* 0240 " ;"s;"o;"l;"l;" ;"i;"c;"h;" ;"Z;"E;"R;"O;" ;"m;"a;"c 037142* 0363 037143* 0357 037144* 0354 037145* 0354 037146* 0240 037147* 0351 037150* 0343 037151* 0350 037152* 0240 037153* 0332 037154* 0305 037155* 0322 037156* 0317 037157* 0240 037160* 0355 037161* 0341 037162* 0343 037163* 0350 "h;"e;"n;" ;"?;" ;0 / > 037164* 0345 037165* 0356 037166* 0240 037167* 0277 037170* 0240 037171* 0000 037172* 7775 037173* 0215 037174* 0017 037175* 7447 037176* 0337 037177* 7710 7200 PAGE /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 201 037200* 5330 JMP BOOT /ENTRY FOR NORMAL BOOTSTRAP OPERATION 037201* 4777 B0, JMS I (ASKDIR /READ DIR AND ASK PERMISSION TO ZERO IF BAD 037202* 5230 JMP DIROK /DIRECTORY WAS OK, GO ON 037203* 7240 ACM1 /DIR WAS BAD BUT WE GOT OK, MAKE NEW DIRECTORY 037204* 3000 DCA 0 /ONE EMPTY 037205* 1376 TAD (70 037206* 3001 DCA 1 /FILE STORAGE START 037207* 3002 DCA 2 /NO LINK 037210* 3003 DCA 3 /NO OPEN OUTPUT FILES 037211* 7240 ACM1 037212* 3004 DCA 4 /1 ADD. INFO WORD (DATE) 037213* 3005 DCA 5 /EMPTY ENTRY 037214* 1775 TAD I (BGNUMB /WHO AM I? 037215* 7112 CLL RTR 037216* 7010 RAR /045X 037217* 1374 TAD (LNGLST-451 /INDEX INTO BACKGROUND LENGTH LIST 037220* 3010 DCA 10 037221* 1410 TAD I 10 /GET NEGATIVE LENGTH 037222* 1376 TAD (70 /--70 BLOCKS FOR SYSTEM 037223* 3006 DCA 6 /INTO LENGTH OF FIRST ENTRY 037224* 4773 JMS I (BOTRNS /WRITE IN MY DIRECTORY 037225* 4200 4200 /HOPE I HAVEN'T KILLED ANYTHING 037226* 0000 0 037227* 0001 1 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 202 037230* 7301 DIROK, AC0001 037231* 4773 JMS I (BOTRNS /READ MONITOR FROM DSK0: 037232* 0010 10 037233* 0000 0 037234* 0007 7 /KM-USR-DVHS-ENTER(TM8E) /7 13 16 26 037235* 1775 TAD I (BGNUMB /GET OUR DEVICE TYPE 037236* 3772 DCA I (7560 /SET OUR SYS: TYPE 037237* 1775 TAD I (BGNUMB 037240* 3771 DCA I (7561 /SAME FOR DSK: 037241* 1370 TAD (7447+15-1-1 037242* 3010 DCA 10 /SET POINTER TO RESIDENCY TABLE 037243* 1367 TAD (7560+15-1-1 037244* 3011 DCA 11 /SET POINTER TO DEVICE TYPE TABLE IFDEF SINGL8 < TAD (7620 /ENTRY POINT DSK2: DCA I 10 / TAD (6520 /DEVICE TYPE DSK2: DCA I 11 / > IFNDEF SINGL8 < 037245* 2010 ISZ 10 / 037246* 2011 ISZ 11 / > IFDEF SINGL8 < TAD (7615 /ENTRY POINT DSK1: DCA I 10 / TAD (6510 /DEVICE TYPE DSK1: DCA I 11 / > IFNDEF SINGL8 < 037247* 2010 ISZ 10 / 037250* 2011 ISZ 11 / > 037251* 1366 TAD (7612 /ENTRY POINT DSK0: 037252* 3410 DCA I 10 / 037253* 1365 TAD (6500 /DEVICE TYPE DSK0: 037254* 3411 DCA I 11 / /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 203 037255* 6211 CDF 10 // 037256* 1764 TAD I (36+2000 // IFDEF SINGL8 < TAD (2000+15-1-1// > IFNDEF SINGL8 < 037257* 1363 TAD (2000+17-1-1// > 037260* 3010 DCA 10 //SET POINTER TO PERMANENT DEVICE NAME TABLE IFDEF SINGL8 < TAD (6005 //CODE FOR DSK2: DCA I 10 // TAD (6004 //CODE FOR DSK1: DCA I 10 // > 037261* 1362 TAD (6003 //CODE FOR DSK0: 037262* 3410 DCA I 10 // 037263* 1761 TAD I (37+2000 // 037264* 1274 TAD BO2000 // 037265* 3000 DCA 0 //SET POINTER TO DEVICE HANDLER INFO 037266* 6201 BRSLP, CDF 0 /ONCE ONLY CODE 037267* 1735 TAD I RESTEM /IS THIS DEVICE RESIDENT? 037270* 6211 CDF 10 // 037271* 7640 SZA CLA // 037272* 3400 DCA I 0 //ZERO DEVICE HANDLER INFO FOR THIS DEVICE 037273* 2335 ISZ RESTEM // 037274* 2000 BO2000, ISZ 0 //TO NEXT 037275* 2336 ISZ RESCNT //MORE? 037276* 5266 JMP BRSLP //YES 037277* 6201 CDF 0 037300* 4773 JMS I (BOTRNS /WRITE ON SYS: 037301* 4010 4010 037302* 0000 0 037303* 0007 7 037304* 7301 AC0001 /READ NEXT PART OF MONITOR 037305* 4773 JMS I (BOTRNS /FROM DSK0: 037306* 3610 3610 037307* 0000 0000 037310* 0051 51 /CD-SADA-ERR-CHN-ODT-MRG-REM-BOO-CCL /51 54 56 57 60 64 65 66 67 IFZERO OS8-40 < /MAKE CCL RUN FROM DSK0: 037311* 6211 CDF 10 037312* 1360 TAD (17 /MOVE DSK0: DEV # TO CCL OVERLAY 037313* 3757 DCA I (7205 037314* 1366 TAD (7612 /ALSO DSK0: HANDLER ENTRY POINT 037315* 3756 DCA I (7206 037316* 6201 CDF 0 / > 037317* 4773 JMS I (BOTRNS /WRITE IT BACK ON THIS SYS: 037320* 7610 7610 037321* 0000 0 037322* 0051 51 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 204 037323* 4773 JMS I (BOTRNS /WRITE BLOCK 0 ON SYS: 037324* 4200 4200 037325* 7400 7400 037326* 0000 0000 037327* 5755 JMP I (BOOT1 037330* 4773 BOOT, JMS I (BOTRNS /READ BLOCK 0 037331* 0200 200 /WHICH HAS OUR SPECIFIC INFO 037332* 7400 7400 037333* 0000 0000 037334* 5755 JMP I (BOOT1 037335* 7447 RESTEM, 7447 /ONCE ONLY 037336* 7761 RESCNT, -17 /ONCE ONLY 037355* 7400 037356* 7206 037357* 7205 037360* 0017 037361* 2037 037362* 6003 037363* 2015 037364* 2036 037365* 6500 037366* 7612 037367* 7573 037370* 7462 037371* 7561 037372* 7560 037373* 7011 037374* 6330 037375* 7000 037376* 0070 037377* 7036 7400 PAGE /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 205 037400* 6211 BOOT1, CDF 10 037401* 1247 BOLOOP, TAD BOOT1+47 037402* 3611 DCA I BOPNT 037403* 2201 ISZ BOLOOP 037404* 2211 ISZ BOPNT 037405* 5201 JMP BOLOOP 037406* 6201 CDF 0 037407* 5610 JMP I .+1 /SLIP INTO 7600 037410* 7605 7605 037411* 7647 BOPNT, 7647 IFDEF SYRX02 < NOPUNC /IT TOOK MORE TIME TO FIGURE OUT *.+2 /RX02 LOADS AT 2 ENPUNC / > IFNDEF SINGL8 < 037412* 0207 BOMESS, 207;"M;"8;" ;"D;"A;"T;"A;"-;"D;"I;"S;"K / > 037413* 0315 037414* 0270 037415* 0240 037416* 0304 037417* 0301 037420* 0324 037421* 0301 037422* 0255 037423* 0304 037424* 0311 037425* 0323 037426* 0313 IFDEF SINGL8 < BOMESS, 207;"Z;"M;" ;"D;"A;"T;"A;"-;"D;"I;"S;"K / > IFDEF SYRK8E < NOP RK0030, 6741 /WAIT TILL RK8E READY JMP .-1 / > IFDEF SYRL01 < NOP NOP RL0031, 6601 /WAIT TILL RL01 READY JMP .-1 / > IFDEF SYRX02 < NOP NOP RX0033, 6755 /WAIT TILL RX02 READY, 'LOAD' JUMPS TO HERE JMP RXLOAD+1 /FIGURE 8 WAIT WITH 'LOAD' SUBR > 037427* 7200 CLA 037430* 1212 BOMSLP, TAD BOMESS 037431* 6046 TLS /TYPE A WARNING MESSAGE IF BOOTED 037432* 6041 TSF /ON A REAL MACHINE 037433* 5232 JMP .-1 037434* 2230 ISZ BOMSLP /SETUP FOR NEXT CHARACTER 037435* 7740 SMA SZA CLA 037436* 5230 JMP BOMSLP /GO FOR NEXT CHARACTER 037437* 7402 HLT IFDEF SYRX02 < /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 205-1 JMS RXLOAD /EMPTY SILO JMP .-1 /RX02 PRIMARY BOOT JUMPS TO HERE NOPUNC *.-2 /BACK TO NORMAL (RELOC'D) ENPUNC RXLOAD=53 /DEF FROM PRIMARY BOOT > 3522 RELOC 0440 BOBOEND=.-BOBOOT /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 206 TRPTAB, IFDEF UNTRP1 <UNTRP1^10+6001> IFDEF UNTRP2 <UNTRP2^10+6001> IFDEF UNTRP3 <UNTRP3^10+6001> IFDEF UNTRP4 <UNTRP4^10+6001> IFDEF UNTRP5 <UNTRP5^10+6001> IFDEF UNTRP6 <UNTRP6^10+6001> IFDEF UNTRP7 <UNTRP7^10+6001> IFDEF UNTRP8 <UNTRP8^10+6001> IFDEF UNTRP9 <UNTRP9^10+6001> 033522 0000 0000 /END OF LIST 033523 2631 XDSKTAB,"S^100+"Y&3777;0;0;SIZE0 033524 0000 033525 0000 033526 6260 033527 2631 USYS1;UNIT1;FROM1;FROM1+SIZE1 033530 0001 033531 0000 033532 6260 033533 2631 USYS2;UNIT2;FROM2;FROM2+SIZE2 033534 0003 033535 0000 033536 3130 033537 2631 USYS3;UNIT3;FROM3;FROM3+SIZE3 033540 0003 033541 3130 033542 6260 033543 2631 USYS4;UNIT4;FROM4;FROM4+SIZE4 033544 0004 033545 0000 033546 6260 033547 2631 USYS5;UNIT5;FROM5;FROM5+SIZE5 033550 0005 033551 0000 033552 6260 033553 2631 USYS6;UNIT6;FROM6;FROM6+SIZE6 033554 0006 033555 0000 033556 6260 033557 2631 USYS7;UNIT7;FROM7;FROM7+SIZE7 033560 0007 033561 0000 033562 6260 033563 0000 BOOBUF, ZBLOCK 1000 /BUFFER IN WHICH THE BOOTBLK IS ASSEMBLED 4232 DVRSTB=BOOBUF+447 /SYS:-ENTRY DEVICE RESIDENCY TABLE 4343 DVTYPT=BOOBUF+560 /SYS:-ENTRY IN DEVICE TYPE TABLE 4372 FAKSYS=BOOBUF+607 /POSITION OF SYS: ENTRYP. IN BLOCK 0 4562 BGCORW=BOOBUF+777 /BACKGROUND CORE-WORD /END IFNZRO BGMAX > 4600 PAGE /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 207 /***************** TASKBUILDER ************************* /9 FILES CAN BE LOADED IN ONE SINGLE COMMAND LINE. /ONE SINGLE FILE MAY CONTAIN MORE THAN 1 TASK. /OPTIONS: /PAGE 0 VARIABLES 0020 BINPC=TEMP5 /LOAD POINTER 0001 ZNAME=TEMP1 /TASK'S NAME 0002 ZLENG=TEMP2 /LENGTH IN PAGES 0003 ZWC=TEMP3 /LENGTH OF TASK IN WORDS 0007 ZCNT=TEMP4 /TEMPORARY COUNTER 0021 ZBLK=TEMP6 /RELATIVE STARTING BLOCK 0022 ZADDR=TEMP7 /STARTING ADDRESS WITHIN THE TASK /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 208 /ACTIVATE THE PRE-ASSEMBLED CORE-RESIDENT TASKS. 034600 0000 SETNAM, 0 / 034601 1064 TAD [NAMLST-1 /SET UP POINTERS 034602 3016 DCA AUTO16 034603 1063 TAD [TCBTAB 034604 6201 CDF 0 // 034605 3000 SETNM1, DCA TEMP // 034606 1400 TAD I TEMP //FIRST ITEM IS NAME OR 00 034607 7450 SNA 034610 5600 JMP I SETNAM //ZERO IS TERMINATOR 034611 3416 DCA I AUTO16 034612 3400 DCA I TEMP //CLEAR THE BACKLINK!! 034613 1000 TAD TEMP //MOVE ONE BLOCKLET FURTHER 034614 1145 TAD [10 034615 5205 JMP SETNM1 //CYCLE 034616 0000 TSKBLD, 0 /TASKBUILD ROUTINE 034617 4462 RSTRT, JMS I [OS8IN /READ CHAR FROM OS8IN 034620 5616 JMP I TSKBLD /NO INPUT, RETURN /START LOADING ALL FILES, ONE BEHIND THE OTHER XL4, 034621 1061 TAD [200-1 /V2 034622 3010 DCA AUTO10 /V2 034623 1060 TAD [-4600 /DON'T SPOIL BATCH (5000 AND UP) 034624 3000 DCA TEMP /V2 034625 6241 CDF BGFLD+10 /V2 034626 3410 DCA I AUTO10 /V2 CLEAR LOADER AREA 034627 2000 ISZ TEMP /V2 034630 5226 JMP .-2 /V2 034631 6231 CDF BGFLD /V2 034632 7240 ACM1 /RESET TO LEADER PHASE 034633 4457 XL5, JMS I [BINL /READ FIRST FRAME AND SO ON 034634 5616 JMP I TSKBLD /CTRL/Z DETECTED 034635 5272 JMP XL6 /CHECKSUM DETECTED 034636 1020 TAD BINPC /AC=0;INSPECT BEFORE LOADING 034637 7650 SNA CLA / 034640 5246 JMP XTABLS /LOAD PAGE ZERO: PATCH MONITOR TABLES 034641 1024 TAD BINAC 034642 6241 CDF BGFLD+10 //THERE WILL THE TASK BE LOADED 034643 3420 DCA I BINPC // 034644 6231 CDF BGFLD / 034645 5233 JMP XL5 /READ NEXT FRAME /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 209 034646 1024 XTABLS, TAD BINAC 034647 0056 AND [7707 034650 1055 TAD [-6201 034651 7640 SZA CLA /MUST BE A CDF 034652 4563 ERR21, JMS I [ERROR /PREAMBLE ERROR 034653 1024 TAD BINAC 034654 3266 DCA YCDF 034655 4457 JMS I [BINL /GET NEXT WORD 034656 7000 NOP 034657 4563 ERR21A, JMS I [ERROR /PREABLE ERROR 034660 1024 TAD BINAC /POINTER TO WORD TO PATCH 034661 3000 DCA TEMP / 034662 4457 JMS I [BINL /GET NEXT WORD 034663 7000 NOP 034664 4563 ERR21B, JMS I [ERROR /PREABLE ERROR 034665 1024 TAD BINAC /THAT'S THE VALUE 034666 7402 YCDF, HLT /GETS A CDF 034667 3400 DCA I TEMP /AND PATCH IT NOW 034670 6231 CDF BGFLD /RESTORE DATAFIELD 034671 5233 JMP XL5 /AND JUMP BACK TO NORMAL LOADING 034672 7640 XL6, SZA CLA /CHECKSUM IN AC 034673 4563 ERR25, JMS I [ERROR /CKECKSUM ERROR /FETCH NAME AND LENGTH FROM TASK HEADER. /ALSO COMPUTE THE RELATIVE STARTING ADDRESS 034674 7350 AC3777 034675 6241 CDF BGFLD+10 034676 0574 AND I [200 // 034677 7450 SNA // 034700 5221 JMP XL4 //EMPTY BINARY, SKIP IT 034701 3001 DCA ZNAME // 034702 1503 TAD I [201 //GET LENGTH WORD 034703 0147 AND [7600 //MAKE CORRECT WORDCOUNT 034704 3003 DCA ZWC // 034705 1503 TAD I [201 // 034706 0070 AND [77 //TASK CONNECTED? 034707 7104 CLL RAL //# OF WORDS FOR 'CONNECT' IN AC 034710 1103 TAD [201 //SKIP THEM 034711 3022 DCA ZADDR // 034712 1422 TAD I ZADDR //NOW SCAN THE RELOCATE POINTERS 034713 2022 ISZ ZADDR // 034714 7640 SZA CLA // 034715 5312 JMP .-3 // 034716 6231 CDF BGFLD 034717 1003 TAD ZWC /SAVE ALSO LENGTH IN # OF PAGES 034720 7110 CLL RAR 034721 7002 BSW 034722 3002 DCA ZLENG /LOADED BEYOND LENGTH OF TASK? 034723 1003 TAD ZWC 034724 1174 TAD [200 034725 7041 CIA 034726 7100 CLL 034727 1020 TAD BINPC /BINPC FROM 200 UP 034730 7630 SZL CLA 034731 4563 ERR26, JMS I [ERROR /LOADED BEYOND LENGTH /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 210 /MAKE A TASK-CONTROL BLOCKLET /FIRST OF ALL GET AN ENTRY IN NAMLST. /SEARCH NAMLST IN CASE THIS IS A REPLACE OPERATION /THEN CHECK WHETHER THE /NEW VERSION CAN BE DROPPED INTO THE SAME HOLE. 034732 1113 XL90, TAD [-MAXNAM /TEST FOR MAX NUMBER OF ENTRIES 034733 3007 DCA ZCNT 034734 1054 TAD [NAMLST 034735 3000 DCA TEMP 034736 6201 CDF 0 // 034737 1400 XL9, TAD I TEMP 034740 7041 CIA 034741 1001 TAD ZNAME //SAME NAME? 034742 7650 SNA CLA 034743 5453 JMP I [XL91 //Y 034744 2000 ISZ TEMP //NEXT ENTRY 034745 2007 ISZ ZCNT //ALL DONE ? 034746 5337 JMP XL9 //NO, CYCLE 034747 1544 TAD I [FHEAD //MUST BE A NEW NAME, ALLOCATE NEW TCB 034750 7450 SNA //ANY SPARE TCB'S ? 034751 4563 ERR28, JMS I [ERROR //NAMELIST EXHAUSTED 034752 3000 DCA TEMP //POINTER TO NEW TCB 034753 1400 TAD I TEMP //GET NEXT FREE TCB ADDRESS 034754 3544 DCA I [FHEAD //AND STORE IN FHEAD 034755 6231 CDF BGFLD / /SEARCH A HOLE IN DISKMAP. 034756 1052 XL75, TAD [DSKMAP 034757 3010 DCA AUTO10 034760 1410 LOOP, TAD I AUTO10 034761 7640 SZA CLA 034762 5360 JMP .-2 /LOOP 034763 1010 TAD AUTO10 034764 1051 TAD [-ENDMAP /COMPARE WITH END OF MAP 034765 7650 SNA CLA /IS THIS THE END ? 034766 4563 ERR27, JMS I [ERROR /DISKMAP FULL 034767 1002 TAD ZLENG 034770 7171 STL CIA RAR /CONVERT TO - # BLOCKS 034771 3007 DCA ZCNT /SETUP COUNTER 034772 5376 JMP LOOP2 /JUMP IN LOOP TO CHECK LENGTH 034773 1410 LOOP1, TAD I AUTO10 /GET NEXT WORD 034774 7640 SZA CLA /ALSO FREE ? 034775 5360 JMP LOOP /NO, LOOK FOR NEXT HOLE 034776 2007 LOOP2, ISZ ZCNT /LONG ENOUGH ? 034777 5373 JMP LOOP1 /NO, SEE IF THERE IS MORE ROOM /OK, FOUND HOLE THAT'S LARGE ENOUGH 035000 1002 TAD ZLENG 035001 7171 STL CIA RAR /- # BLOCKS 035002 1010 TAD AUTO10 /SAVE POSITION IN DISKMAP 035003 1050 TAD [-DSKMAP /RELATIVE BLOCK# 035004 1452 TAD I [DSKMAP /ADD OFFSET IN SAVE FILE 035005 3021 DCA ZBLK /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 211 /FILL IN THE DISKMAP 035006 1002 TAD ZLENG /COUNTS # OF PAGES 035007 7171 STL CIA RAR /V3 CONVERT TO -# OF BLOCKS 035010 3007 DCA ZCNT 035011 1002 TAD ZLENG /SET POINTER TO BEGIN OF HOLE 035012 7171 STL CIA RAR / 035013 1010 TAD AUTO10 035014 3010 DCA AUTO10 035015 1001 TAD ZNAME /NAME MUST BE UNEQ 0 035016 3410 DCA I AUTO10 035017 2007 ISZ ZCNT 035020 5215 JMP .-3 035021 5267 JMP XL10 /NAME DOES ALREADY EXIST IN THE SYSTEM, DELETE THE OLD /TASK FIRST 035022 3400 XL91, DCA I TEMP /ZERO THE NAME ENTRY 035023 1000 TAD TEMP 035024 1047 TAD [-NAMLST 035025 7104 CLL RAL /^10 035026 7006 RTL /FIND PLACE IN TCBTAB 035027 1063 TAD [TCBTAB 035030 3000 DCA TEMP 035031 1544 TAD I [FHEAD 035032 3400 DCA I TEMP 035033 1000 TAD TEMP 035034 3544 DCA I [FHEAD 035035 2000 ISZ TEMP 035036 2000 ISZ TEMP 035037 2000 ISZ TEMP 035040 1400 TAD I TEMP /GET BLOCKNUMBER OFFSET 035041 7041 CIA 035042 6231 CDF BGFLD 035043 1452 TAD I [DSKMAP /SUBSTRACT OFFSET IN SAVEFILE 035044 7040 CMA /CIA: BUG, CORRECTED 13-JAN-80 035045 1052 TAD [DSKMAP 035046 3010 DCA AUTO10 035047 1010 TAD AUTO10 035050 3011 DCA AUTO11 035051 1410 DELETE, TAD I AUTO10 035052 7041 CIA 035053 1001 TAD ZNAME 035054 7640 SZA CLA /STILL THE SAME NAME ? 035055 5260 JMP ENDDEL /NO, ENTRY IS DELETED 035056 3411 DCA I AUTO11 /DELETE THIS ENTRY 035057 5251 JMP DELETE 035060 6211 ENDDEL, CDF 10 035061 1446 TAD I [7643 035062 6231 CDF BGFLD 035063 0045 AND [400 035064 7640 SZA CLA /DELETE OPTION SWITCH (/D) ? 035065 5444 JMP I [XL4 /YES, DON'T INSTALL THIS TASK 035066 5443 JMP I [XL90 /NO, GO INSTALL THIS TASK /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 212 /START FILLING IN THE PARAMETERS: 035067 1000 XL10, TAD TEMP /POINTER IN TCBTAB 035070 3011 DCA AUTO11 035071 6201 CDF 0 // 035072 3400 DCA I TEMP //ZERO BACKLINK 035073 6241 CDF BGFLD+10 035074 7203 AC0100 /EXTRACT AUTO-START BIT 035075 0503 AND I [201 035076 6201 CDF 0 035077 3411 DCA I AUTO11 /SET 0 OR 100 IN THREAD WORD 035100 1022 TAD ZADDR /STARTING ADDRESS FROM *200 ON 035101 0061 AND [177 /V3 MAKE IT PAGE ZERO 035102 3411 DCA I AUTO11 /RELATIVE STARTING ADDRESS 035103 1021 TAD ZBLK 035104 3411 DCA I AUTO11 /RELATIVE BLOCK NUMBER 035105 1003 TAD ZWC /LENGTH,FIELD AND ONDISK BIT 035106 7110 CLL RAR /V7A BREAK-FLAG=0 035107 1042 TAD [FIELDS^10+1 /V3 SET ONDISK BIT, 035110 3411 DCA I AUTO11 /RELATE TO HIGHEST+1 FG-FIELD 035111 1041 TAD [CDF%2 035112 3411 DCA I AUTO11 /UPDATE NAMLST. /POSITION IN NAMLST. 035113 1000 TAD TEMP 035114 1063 TAD [-TCBTAB 035115 7110 CLL RAR 035116 7110 CLL RAR 035117 7110 CLL RAR 035120 1054 TAD [NAMLST 035121 3000 DCA TEMP 035122 1001 TAD ZNAME 035123 3400 DCA I TEMP /WRITE TASK ONTO DISK 035124 6231 CDF BGFLD 035125 1002 TAD ZLENG 035126 7111 CLL IAC RAR /# OF BLOCKS 035127 1021 TAD ZBLK /+ RELATIVE BLOCK # 035130 1777 TAD I (ACTLEN /-ACTUAL FILE LENGTH 035131 7700 SMA CLA 035132 4563 ERR23, JMS I [ERROR /?MULTI8.SV TOO SHORT? 035133 1003 TAD ZWC /MAKE FUNCTIONWORD 035134 7130 STL RAR /WRITE; WLL.LLL.FFF.000 035135 1040 TAD [BGFLD+10 035136 3344 DCA XLDTV 035137 1565 TAD I [OFSET /BLOCK# ON DISK 035140 1021 TAD ZBLK 035141 3346 DCA XLBLK 035142 6202 CIF 0 035143 4564 JMS I [SYSHND 035144 0000 XLDTV, 0 /FUNCTION WORD 035145 0200 200 /ADDRESS IN CORE 035146 0000 XLBLK, 0 /BLOCK # ON DISK 035147 4563 ERR29, JMS I [ERROR /WRITE ERROR /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 212-1 035150 3025 DCA CHANGD /SET SAVE FLAG 035151 5444 JMP I [XL4 035177 1015 5200 PAGE /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 213 /BINARY LOADER SUBROUTINE READ A BINAIRY FILE AND /PRODUCES TWO PARAMETERS OF /INTEREST:THE LOAD POINTER 'BINPC', AND THE CONTENTS /OF THE DATA 'BINAC'. THE USER CAN TEST FORMATS AND /BOUNDARIES, AND HAS TO DEPOSIT THE DATA HIMSELF. /DURING LEADER PHASE THE ROUTINE IGNORES LEADER /CODE. A JMS TO BINL WITH AC UNEQ 0 ALSO /RESETS ALL PARAMETERS AND RETURNS TO LEADER MODE. /HOW TO USE THE ROUTINE AS A STANDARD BINARY LOADER /START, JMS BINL / HLT /EOT RETURN;AC=0 / HLT /READY RETURN;AC=DIFFERENCE IN CHECKSUMS / TAD BINAC /AC=0;NORMAL RETURN / CDF DATAFIELD / DCA I BINPC / JMP START 035200 0000 BINL, .-. /AC UNEQ 0 =RESET PARAMETERS 035201 7640 SZA CLA 035202 5260 JMP BINIT /RESET 035203 2020 ISZ BINPC /V4 UPDATE POINTER 035204 1277 BINCHX, TAD BINW1 /V4 UPDATE CHECKSUM 035205 1300 TAD BINW2 /V4 035206 1301 TAD BINSUM /V4 035207 3301 BINGO, DCA BINSUM /CLEAR OR ADD TO CHECKSUM 035210 1276 TAD BINCHR 035211 3277 DCA BINW1 035212 4462 JMS I [OS8IN /V4 LOOK AHEAD 035213 5600 JMP I BINL /END OF TAPE 035214 3300 DCA BINW2 035215 4230 JMS BINGG /READ NEXT 035216 5267 JMP BINEND /TRAILER= END 035217 4251 JMS BINASS /ASSEMBLE WORD1 AND WORD2 035220 7430 SZL /ORIGIN ? 035221 5226 JMP BINNPC /V4 YES:SET ORIGIN 035222 3024 DCA BINAC /SAVE DATA 035223 2200 ISZ BINL /NORMAL RETURN 035224 2200 BINOUT, ISZ BINL /V4 CHECKSUM RETURN 035225 5600 JMP I BINL /V4 035226 3020 BINNPC, DCA BINPC /V4 SET ORIGIN 035227 5204 JMP BINCHX /V4 DON'T UPDATE POINTER /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 214 035230 0000 BINGG, .-. /READ AND TEST FRAMES 035231 4462 JMS I [OS8IN /V4 035232 5600 JMP I BINL /END OF TAPE 035233 3276 DCA BINCHR /SAVE FRAME 035234 1276 TAD BINCHR 035235 1147 TAD [-200 /200 ? 035236 7510 SPA /YES 035237 2230 ISZ BINGG /DATA OR ORIGIN 035240 7750 SPA SNA CLA 035241 5630 JMP I BINGG /DATA, ORIGIN OR L/T 035242 1276 TAD BINCHR 035243 1037 TAD [-300 035244 7500 SMA /IS IT REALLY A BINARY FILE ? 035245 0036 AND [7 035246 7650 SNA CLA /V4 035247 5231 JMP BINGG+1 /V4 IGNORE FIELD SETTING 035250 4563 ERR22, JMS I [ERROR /?BAD BINARY? 035251 0000 BINASS, .-. /ASSEMBLE 2 FRAMES 035252 1277 TAD BINW1 035253 7106 CLL RTL /SWAP BYTES 035254 7006 RTL 035255 7006 RTL /NO BSW!, ORIGIN SETTING MAKES LINK=1 035256 1300 TAD BINW2 035257 5651 JMP I BINASS /RETURN 035260 3277 BINIT, DCA BINW1 /V4 035261 3300 DCA BINW2 /V4 035262 1174 TAD [200 /V4 035263 3020 DCA BINPC /V4 035264 4230 JMS BINGG 035265 5264 JMP .-1 /IGNORE LEADER 035266 5207 JMP BINGO 035267 7240 BINEND, ACM1 035270 1020 TAD BINPC 035271 3020 DCA BINPC /BACKUP BINPC 035272 4251 JMS BINASS /FOR CHECKSUM 035273 7041 CIA 035274 1301 TAD BINSUM 035275 5224 JMP BINOUT /CHECKSUM RETURN 035276 0000 BINCHR, 0 /LAST READ CHAR. 035277 0000 BINW1, 0 /FIRST FRAME 035300 0000 BINW2, 0 /SECOND FRAME 035301 0000 BINSUM, 0 /CHECKSUM 5400 PAGE /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 215 /USER EQUATES 0001 IBUFLG=1 /LENGTH OF INPUT BUFFER /PROGRAM EQUATES 0030 OSIFLD=BGFLD /FIELD OF PROGRAM IS 0030 IBUFLD=BGFLD /FIELD OF INPUTBUFFER 0030 IPRFLD=BGFLD /FIELD OF CALLING PROGRAM / DATAFIELD: /0 FIELD 0 /1 FIELD 10 /Z FIELD ZERO 035400 0000 OS8IN, 0 035401 5672 JMP I OSIPCH /Z COROUTINES OSIFRST, 035402 6211 OSINXT, CDF 10 /1 035403 2307 ISZ OSIFILP /1 035404 1707 TAD I OSIFILP /1 035405 6231 CDF OSIFLD / 035406 7450 SNA /Z 035407 5302 JMP OSIRST /Z NO NEXT ONE, MAKE RESTARTABLE 035410 6212 CIF 10 / 035411 4710 JMS I OSIUSR /Z 035412 0012 INQUIRE /Z FETCH HANDLER 035413 0000 OSIHND, 0 /Z INIT VALUE 035414 5221 JMP ERR9 /VERY STRANGE INDEED 035415 1213 TAD OSIHND /GET HANDLER ADDRESS 035416 1377 TAD (200 035417 0376 AND (7600 035420 7640 SZA CLA /ADDRESS IN PAGE 7600 ? 035421 4775 ERR9, JMS I (ERROR /?NON-RESIDENT HANDLER? 035422 6211 CDF 10 /1 035423 2307 ISZ OSIFILP /1 035424 1707 TAD I OSIFILP /1 035425 3237 DCA OSIBLK /1 035426 6231 CDF OSIFLD / OSIREAD, /Z 035427 1376 TAD (7600 /Z 035430 3313 DCA OSICNT /Z 035431 1374 TAD (200+IBUFLD /Z 035432 3235 DCA OSIFUNC /Z 035433 6202 CIF 0 / 035434 4613 JMS I OSIHND / OSITEM, 035435 0230 OSIFUNC, 200+IBUFLD /Z 035436 5600 OSIBUF, BUFST /Z 035437 7746 OSIBLK, 7746 /Z INIT VALUE 035440 4775 ERR10, JMS I (ERROR /?READ ERROR? 035441 2237 ISZ OSIBLK /Z 035442 1236 TAD OSIBUF /Z 035443 3311 DCA OSIPNT /Z /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 216 035444 1711 OSILP, TAD I OSIPNT /Z FAST BUFFER UNPACK 035445 4272 JMS OSIPCH /Z 035446 1711 TAD I OSIPNT /Z 035447 2311 ISZ OSIPNT /Z 035450 0373 AND (7400 /Z 035451 3235 DCA OSITEM /Z 035452 1711 TAD I OSIPNT /Z 035453 4272 JMS OSIPCH /Z 035454 1711 TAD I OSIPNT /Z 035455 2311 ISZ OSIPNT /Z 035456 0373 AND (7400 /Z 035457 7112 CLL RTR /Z 035460 7012 RTR /Z 035461 1235 TAD OSITEM /Z 035462 7012 RTR /Z 035463 7012 RTR /Z 035464 4272 JMS OSIPCH /Z 035465 2313 ISZ OSICNT /Z 035466 5244 JMP OSILP /Z 035467 2312 ISZ OSINUM /Z 035470 5227 JMP OSIREAD /Z 035471 5202 JMP OSINXT /Z 035472 5402 OSIPCH, OSIFRST /Z COROUTINES 035473 0372 AND (377 /Z 035474 1371 TAD (-232 /Z 035475 7450 SNA /Z 035476 5202 JMP OSINXT /Z 035477 2200 ISZ OS8IN 035500 1370 TAD (232 /Z 035501 5600 JMP I OS8IN /Z 035502 1367 OSIRST, TAD (OSIFRST /Z 035503 3272 DCA OSIPCH /Z 035504 1366 TAD (7617-1 /Z 035505 3307 DCA OSIFILP /Z 035506 5600 JMP I OS8IN /Z 035507 7616 OSIFILP,7617-1 035510 7700 OSIUSR, 7700 035511 0000 OSIPNT, 0 035512 0000 OSINUM, 0 035513 0000 OSICNT, 0 035566 7616 035567 5402 035570 0232 035571 7546 035572 0377 035573 7400 035574 0230 035575 2076 035576 7600 035577 0200 5600 PAGE /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 216-1 035600 0000 BUFST, ZBLOCK 400 /INPUT BUFFER 6400 ENDPWR=.+400&7400 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 217 /PAGE ZERO LITERALS: $ 030036 0007 030037 7500 030040 0040 030041 3100 030042 0031 030043 4732 030044 4621 030045 0400 030046 7643 030047 4313 030050 7406 030051 7023 030052 0372 030053 5022 030054 3465 030055 1577 030056 7707 030057 5200 030060 3200 030061 0177 030062 5400 030063 4000 030064 3464 030065 0212 030066 0215 030067 0240 030070 0077 030071 2234 030072 3363 030073 6241 030074 7774 030075 7756 030076 7764 030077 5372 030100 1030 030101 7761 030102 7762 030103 0201 030104 7773 030105 6233 030106 3521 030107 6000 030110 0471 030111 0005 030112 0137 030113 7730 030114 4001 030115 7360 030116 0004 030117 0205 030120 3317 030121 7775 030122 0113 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 217-1 030123 0112 030124 0110 030125 7660 030126 7776 030127 4342 030130 4231 030131 4233 030132 4232 030133 4562 030134 1040 030135 4707 030136 7777 030137 3361 030140 7760 030141 0600 030142 0017 030143 3217 030144 0133 030145 0010 030146 4163 030147 7600 030150 2000 030151 7644 030152 7642 030153 4616 030154 1600 030155 7740 030156 7577 030157 3522 030160 0020 030161 3700 030162 0361 030163 2076 030164 7607 030165 1014 030166 0352 030167 0223 030170 1064 030171 4600 030172 1400 030173 7700 030174 0200 030175 6004 030176 7746 030177 1000 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 218 ACCRD 1321 BG3IN 3100 CDTOAC 4101 C3BACK 0210 ACCRST 1330 BG3OUT 3120 CDTOIF 4107 C3CHAR 0000 ACM1 7240 BINAC 0024 CHAIND 0026 C3ESCP 0233 ACM2 7344 BINASS 5251 CHANGD 0025 C3FILL 0000 ACM3 7346 BINCHR 5276 CHEAD 0140 C37 0046 ACTLEN 1015 BINCHX 5204 CHNDRV 2347 C3700 0060 AC0001 7301 BINEND 5267 CINT 6204 C4 0043 AC0002 7326 BINGG 5230 CLEAR 1000 C6201 0061 AC0003 7325 BINGO 5207 CLKINT 0234 C6202 0005 AC0004 7307 BINIT 5260 CLKIN1 0264 C6203 0076 AC0006 7327 BINL 5200 CLNGTH 1166 C7 0044 AC0100 7203 BINNPC 5226 CLOSE 0004 C70 0047 AC2000 7332 BINOUT 5224 CLRQ 2731 C7000 0062 AC3777 7350 BINPC 0020 CLRQ1 2735 C7400 0063 AC4000 7330 BINSUM 5301 CLRQ2 2751 C7600 0065 AC5777 7352 BINW1 5277 CLRTAB 3320 C77 0050 AC6000 7333 BINW2 5300 COMPNT 0120 C7700 0066 AC7775 7346 BJOB 0122 CONCDF 2455 C7770 0067 AC7776 7344 BLDCUR 0753 CONGET 2454 C7771 0070 AC7777 7240 BLDNEW 0741 CONNCT 2400 C7774 0071 ADR 0276 BOBOEN 0440 CONSET 2431 C7775 0072 ALARM 0075 BOBOOT 3062 CONTAB 0130 C7776 0073 ALARM0 1434 BOCALL 7027 CONTIN 0001 C7777 0074 ASC 7403 BOLOOP 7401 CON1 2403 DAC 0160 ASEMMX 0010 BOMESS 7412 COPCLR 1434 DCSR 6504 ASKDIR 7036 BOMSLP 7430 COPDSK 0756 DEFER 0114 AUTO10 0010 BOOBUF 3563 COPYZ 1400 DELETE 5051 AUTO11 0011 BOOT 7330 CORMAP 3323 DEVLST 2761 AUTO12 0012 BOOT1 7400 CRLF 2162 DEVNAM 1263 AUTO13 0013 BOPNT 7411 CTAIL 0141 DGNCNT 0001 AUTO14 0014 BOTRNS 7011 CUDTV 2325 DGNNUM 3150 AUTO15 0015 BO2000 7274 CUF 6264 DGNPNT 3147 AUTO16 0016 BREAK 0074 CURTSK 0127 DGNTIC 0012 AUTO17 0017 BREAKR 0276 C0BACK 0210 DGNTIM 3112 BASE 0030 BREAK0 1442 C0CHAR 0000 DGN1 3117 BB 2504 BREAK1 0312 C0ESCP 0233 DGN2 3133 BBCNT 2516 BRKCHR 0206 C0FILL 0000 DGN4 3132 BGCORE 0010 BRKTST 1454 C1BACK 0210 DIROK 7230 BGCORW 4562 BRK1 0314 C1CHAR 0000 DISCON 2460 BGDATA 3707 BRK3 0311 C1ESCP 0233 DISP 1224 BGERR 0002 BRSLP 7266 C1FILL 0000 DISPAT 0471 BGFLD 0030 BSFLAG 1226 C100 0051 DISPLP 0512 BGFLDS 0005 BSIZE 0020 C17 0045 DISP1 0525 BGID 0155 BSSLOT 0033 C177 0052 DISP2 0537 BGMAX 0003 BSTAB 3361 C2 0041 DISP3 0550 BGNUMB 7000 BTXT1 7047 C2BACK 0210 DISP4 0552 BGREL 1072 BUFST 5600 C2CHAR 0000 DISP5 0554 BGSTOP 1000 B0 7201 C2ESCP 0233 DISP6 0400 BG1 3707 CALL 0024 C2FILL 0000 DISP7 0436 BG1IN 3000 CALL0 1045 C200 0053 DISTMP 2454 BG1OUT 3020 CALL1 1054 C212 0054 DIS1 2463 BG2 3775 CALL2 1063 C215 0055 DK 2463 BG2IN 3040 CCB 0356 C240 0056 DKCDF 2506 BG2OUT 3060 CCBLST 0362 C260 0057 DKCLOS 2557 BG3 4063 CD 0005 C3 0042 DKDTV 2562 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 218-1 DKERRO 2556 EMBSI1 1265 EM1 0520 EXIT 1040 DKNAME 2545 EMBSI2 1270 EM2 0522 FAKHND 2625 DKSLT1 2552 EMCALL 1000 EM20 0536 FAKLEN 0134 DKSLT2 2555 EMCDIF 0623 EM20TB 3527 FAKSYS 4372 DKUSED 0001 EMCHCK 0635 EM3 0523 FAKVER 0015 DK8EP 0130 EMCHNL 2244 EM9 1002 FASSGN 7623 DLCR 6502 EMCLA 1362 ENDDEL 5060 FBLKO 3416 DLSR 6512 EMCLCA 0716 ENDF00 4600 FCDIF 7737 DLSS 6506 EMDOT 0527 ENDF10 4200 FERROR 2656 DLTR 6514 EMDSK0 2331 ENDF20 0200 FETCH 0001 DLTW 6515 EMDSK1 2361 ENDF30 0200 FEXIT 7735 DMPBLK 2005 EMECHO 0760 ENDF40 0200 FGENIO 7670 DNTREL 0424 EMERRO 0723 ENDF50 0200 FGNOSY 7725 DOTF00 3200 EMFETC 2200 ENDF60 0200 FGTMP 7675 DOTF10 4200 EMGETF 0650 ENDF70 0200 FHEAD 0133 DOTF20 0120 EMGIGA 0542 ENDMAP 0755 FIELDS 0003 DOTF30 0120 EMGVIR 0677 ENDPWR 6400 FILLQ 2600 DOTF40 0120 EMH 0516 ENTER 0003 FILLQ1 2650 DOTF50 0120 EMHAND 2215 EOFERR 0020 FMASK 0045 DOTF60 0120 EMHD 0552 EOMERR 0010 FM203 7741 DOTF70 0120 EMHLT 0744 ERRFND 2117 FNORML 2655 DO6030 1506 EMINAC 1255 ERRLOG 2737 FQLAST 3340 DO6031 1464 EMLIST 0537 ERRLOP 2107 FRECNT 0121 DO6032 1504 EMLOOP 1115 ERRLST 2235 FREE 0120 DO6034 1525 EMNAME 1007 ERROR 2076 FRESLT 3360 DO6036 1501 EMNUMB 0600 ERRTSK 1441 FRETRN 2657 DO6044 1400 EMOPEN 2434 ERR0 2072 FROM1 0000 DO6046 1400 EMOR 1530 ERR10 5440 FROM2 0000 DPSZ 7451 EMQEND 0705 ERR2 1734 FROM3 3130 DRCR 6503 EMQUIC 0707 ERR21 4652 FROM4 0000 DRSR 6505 EMQUIT 0757 ERR21A 4657 FROM5 0000 DRSS 6507 EMREDY 1213 ERR21B 4664 FROM6 0000 DRTR 6516 EMREL 1074 ERR22 5250 FROM7 0000 DSDD 6501 EMREL1 1142 ERR23 5132 FSTEXT 0447 DSDE 6511 EMRUN 1273 ERR23A 0315 FSYS 7607 DSKCO1 0765 EMRUN0 1312 ERR25 4673 FUN 0275 DSKMAP 0372 EMRUN1 1316 ERR26 4731 FUNC 7730 DSKTAB 7600 EMSGT 1202 ERR27 4766 FUNCTI 0025 DSRR 6513 EMSKIP 1207 ERR28 4751 FUNTAB 1336 DTACHN 0020 EMSPY 1535 ERR29 5147 F0076 7742 DVRSTB 4232 EMSTLL 1335 ERR3 0256 F1400 7740 DVTYPT 4343 EMSTRT 1476 ERR3A 0300 GERMAN 0001 DWCA 6517 EMTAB 3427 ERR4 0327 GET 0135 D2 0540 EMTIME 1745 ERR4A 0334 GETCDF 1032 D6046A 1427 EMULAT 2000 ERR4B 0343 GETLEN 2056 D6046C 1436 EMVER 1200 ERR5 1146 GETNEW 1000 D6046X 1425 EMWAIT 1024 ERR5A 1167 GETN1 1013 E 2233 EMW1 1033 ERR5B 1160 GETN2 1036 EAE 0001 EMX 0733 ERR6 1016 GETQ 2721 EMACTI 1246 EMXNOP 0732 ERR7 2074 GIGAMX 0030 EMBG1 4070 EMXSKP 0731 ERR8 1330 GIGATB 3657 EMBG2 4120 EM00 0532 ERR9 5421 GO 1600 EMBG3 4150 EM00TB 3627 ERSTAT 2740 HALT 0010 EMBRED 0627 EM03 0534 ESCALT 1517 HALT0 1264 EMBSIN 1263 EM03TB 3637 EVENTF 0033 HELP 1753 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 218-2 HELP1 1755 KHINRM 1664 LSYSDR 7677 M3 0072 HLPCNT 1752 KHIOUT 2134 LZERO 3777 M4 0071 HNDTAB 3417 KHIRUN 1610 MAININ 1102 M400 0063 HNGCNT 0120 KHIST 2026 MAPEND 3464 M7 0070 HOLCNT 1600 KHISTP 1734 MAPIND 2010 M8BITS 7667 HOLE 1603 KHI0 1600 MAXDEV 0007 NAMLST 3465 HOLE1 1615 KHI11 1603 MAXNAM 0050 NEWLEN 0342 HOLE10 1641 KHI12 1720 MAXSLO 0033 NEWLNG 1145 HOLE11 1643 KHI21 2112 MHEAD 0136 NEWSAV 0314 HOLE12 1655 KHI3 1724 MIDI 0310 NEWSWP 1131 HOLE13 1660 KHI4 2056 MONAC 0023 NEWTSK 0027 HOLE14 1672 KHI5 2027 MONCDF 0605 NO 1000 HOLE2 1627 KHI51 2045 MONCIF 0675 NOCHCK 2314 HOLE20 1700 KHI8 2143 MONDUM 2031 NOTERM 0621 HOLE3 1632 KHLT 2426 MONERR 1114 NOTSYS 2274 HOLE7 1634 KHO 2403 MONER1 1113 NULL 0524 HOLLEN 1601 KHOBG1 4060 MONITO 0002 O 4000 HOLMAX 1602 KHOBG2 4110 MONLDF 0024 OFSET 1014 HRDERR 0004 KHOBG3 4140 MONPC 0022 ONDISK 0400 HRDINT 0413 KHO1 2404 MONRTN 0661 OO 0074 HRDLST 3222 KHO2 2400 MSEC 0144 OSIBLK 5437 HRD1 0417 KHTEST 2000 MSG0 2353 OSIBUF 5436 HRD2 0423 KHT1 2011 MSG10 2503 OSICNT 5513 HWTICK 0012 KHT2 2020 MSG11 2401 OSIFIL 5507 IBMPRO 0520 KK 0315 MSG2 2364 OSIFLD 0030 IBUFLD 0030 KKESCP 0337 MSG21 2512 OSIFRS 5402 IBUFLG 0001 KK1LST 0000 MSG22 2523 OSIFUN 5435 IHEAD 0134 KK2 0334 MSG23 2532 OSIHND 5413 INACTI 4000 K1TCBP 4044 MSG25 2545 OSILP 5444 INCFLD 0070 K10 1107 MSG26 2553 OSINUM 5512 INCORE 0100 LASTNM 3554 MSG27 2562 OSINXT 5402 INQUIR 0012 LCONFG 7767 MSG28 2574 OSIPCH 5472 INSOF 0270 LDATA 7757 MSG29 2605 OSIPNT 5511 INT 0177 LEMULA 7377 MSG3 2401 OSIREA 5427 INTAC 0031 LE8E 4205 MSG4 2411 OSIRST 5502 INTDEV 0004 LFPP 7775 MSG5 2425 OSITEM 5435 INTEXT 0557 LJOB 0125 MSG6 2441 OSIUSR 5510 INTFLD 0032 LLOCAL 7773 MSG7 2455 OS8 0040 INT1 0433 LMONIT 6777 MSG8 2401 OS8DAT 7666 IPRFLD 0030 LNGLST 7001 MSG9 2467 OS8IN 5400 ITAIL 0135 LNGTH 0237 MSG99 2614 OUT 2154 JSW 7746 LNKTCB 1064 MTAIL 0137 O1 0041 KB1 0005 LNKTC1 1067 MTQ 2661 O2 0016 KHCALL 2423 LNKTC2 1101 MTQ1 2715 O3 0064 KHECHO 1677 LOADPT 4160 MULTI8 0352 PARAM 0026 KHEXIT 2432 LONG 0200 MYCDF 0110 PASS1 0000 KHEXT 1451 LOOKUP 0002 MYCDIF 0113 PASS2 0001 KHEXT2 1456 LOOP 4760 MYCIF 0112 PASS3 0000 KHI 1612 LOOP1 4773 M1 0074 PDPTST 2065 KHIBG1 4050 LOOP2 4776 M10 0067 PIPNAM 2217 KHIBG2 4100 LPT 0004 M100 0066 POOLN 0010 KHIBG3 4130 LPTCHN 0030 M1000 0062 PRBOOT 1212 KHICON 2065 LPWRUP 7737 M2 0073 PRECE 1115 KHILP 1614 LRESMO 7577 M200 0065 PRECED 0000 KHINAM 1640 LSKIPS 5777 M215 0064 PRGBLK 1465 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 218-3 PRGBUF 1505 RESTM1 1525 SOFINT 0400 SYSCHN 0010 PRGB1 1506 RESTM2 1526 SOFSLO 0024 SYSCNT 2675 PRGB2 1540 RESTRT 0030 STACDF 1145 SYSCTR 3105 PRGLOP 1525 RESTR0 1206 STACIF 1146 SYSDO 3001 PROGER 0001 REST1 1215 STALL 0064 SYSDRV 3104 PROTOT 0001 RES1 1506 STALL0 1462 SYSDTV 3111 PSETL 2216 RES2 1515 STALL1 1474 SYSGET 3110 PTEMP0 1211 RETRN0 0630 START 1121 SYSHND 7607 PTEMP1 1200 RETRN1 0643 START1 1150 SYSI 0001 PTEMP2 1201 RETRY 2201 START2 1130 SYSINT 2734 PTEMP3 1202 RETURN 0040 STBLK 0236 SYSIN0 2677 PTEMP4 1203 RSAVE 1527 STBLK0 0325 SYSLOT 2736 PTEMP5 1204 RSTRT 4617 STBLK1 0255 SYSMAX 0010 PTEMP6 1205 RUN 0025 STBLK2 0277 SYSPUT 2671 PTEMP7 1206 SAM 7457 STLL0 1342 SYSQ 3200 PTEMP8 1207 SAVE 0223 STLL1 1361 SYSRW 3100 PTEMP9 1210 SAVLOP 0266 STOP 0034 SYSTAT 2733 PUT 0144 SCA 7441 STOP0 1155 SYSTEM 2672 PWRUP 0200 SCENTR 2632 STRT 1000 SYSTM 2673 PWR1 1047 SCL 7403 SUF 6274 SYSWAI 2663 PWR1A 1062 SETBAS 0123 SUSPND 0070 SYSWAT 2727 PWR10 1410 SETBLK 1044 SUSPN0 1200 SYSWC 3106 PWR12 1443 SETDMP 2000 SVLNGT 0125 SYS10 2710 PWR14 1627 SETEX 1545 SWAB 7431 SYS5 2636 PWR15 1656 SETEX1 1543 SWAP1 1122 SY3040 0001 PWR4 1220 SETEX2 1544 SWBA 7447 S8WAIT 1464 PWR4A 1234 SETFAK 1213 SWBLOK 1111 TAPE 0002 PWR5 1253 SETLEN 1455 SWPERR 0001 TAPEDC 4210 PWR5A 1313 SETMAP 2047 SWPER1 1116 TAPETB 3220 PWR5B 1315 SETMEM 2035 SWPER2 2322 TCBTAB 4000 PWR8 1403 SETMM1 2044 SWPER3 2331 TD8E 0001 PWR9 1406 SETNAM 4600 SWPER4 2342 TEMP 0000 P7612 1736 SETNM1 4605 SWPFIL 2227 TEMP1 0001 RBOOT 1712 SETPIP 2200 SWPIN 2027 TEMP2 0002 RELBLK 0054 SETSWP 1104 SWPLEN 1112 TEMP3 0003 RELCDF 2242 SETSW1 1125 SWPOUT 4002 TEMP4 0007 RELEAS 4000 SETTRP 1665 SWPTAB 3367 TEMP5 0020 RELESE 1704 SETUP 2761 SWP1 2064 TEMP6 0021 RELES1 1726 SIGHLT 1231 SWP1A 2252 TEMP7 0022 RELPA0 1400 SIGNAL 0004 SWP2 2261 TENTLN 0326 RELPA1 1430 SIGNL0 1231 SWP3 2270 TICK 2347 RELSUB 1735 SIGNL1 1255 SWP4 2273 TICK1 2367 RELSU2 1747 SINT 6254 SWP5 2302 TIME 0272 REQBLK 0050 SIZE0 6260 SWP6 2311 TIMEOU 0002 REQPA0 1300 SIZE1 6260 SY 2600 TIMER 0002 REQPA1 1312 SIZE2 3130 SYCLOS 2660 TKBNXT 1021 REQPA2 1314 SIZE3 3130 SYERCN 2735 TOTSLO 0037 RERTRN 0700 SIZE4 6260 SYEROR 2657 TRACK 0020 RESCNT 7336 SIZE5 6260 SYEXIT 2661 TRAP 0001 RESERV 0020 SIZE6 6260 SYFLD 2674 TRAPIN 0465 RESER0 1221 SIZE7 6260 SYIGNR 2723 TRAP0 0416 RESEXT 1524 SJOB 0126 SYLNGT 6260 TRPTAB 3522 RESNAM 2223 SKPDEV 0007 SYS 0003 TRTEMP 7035 RESRV 1500 SKPEND 0455 SYSCA 3107 TSKBLD 4616 RESTEM 7335 SKP0 0202 SYSCDF 3021 TSTJMP 1227 /M5.PA 9-SEP-80 PAL8-V40A 26-JAN-86 PAGE 218-4 TT 0200 UBUFIN 0025 XACCDF 0105 TTBACK 0311 UBUFOU 0030 XCOUNT 2661 TTCHAR 0307 UCHAR 0056 XCURTS 0134 TTCOUN 0310 UCHNL0 0035 XDSKTA 3523 TTFCHR 0312 UCOUNT 0061 XJOB 0124 TTFILL 0313 UCUR 0034 XLBLK 5146 TTFLL 0250 UDTV 0012 XLDTV 5144 TTOUT 0256 UECHO 0045 XLISTX 0000 TTOU1 0301 UEND 0066 XL10 5067 TTSAV 0306 UFLDS 0004 XL4 4621 TTTAB 0241 UFLD0 0046 XL5 4633 TTTMP 0314 UINST 0006 XL6 4672 TTYMAX 0001 UKB 0057 XL75 4756 TTY1 0006 UMQ 0001 XL9 4737 TT0 0221 UNEXT 0065 XL90 4732 TT1 0223 UNIT1 0001 XL91 5022 TT1LST 0000 UNIT2 0003 XMONIT 0600 TT2 0232 UNIT3 0003 XREADP 2721 TT3 0237 UNIT4 0004 XTABLS 4646 TXTOUT 2127 UNIT5 0005 XWRITE 2731 TXTPNT 2153 UNIT6 0006 YCDF 4666 TXT1 2135 UNIT7 0007 ZADDR 0022 T1BACK 0210 UNUMB 0036 ZBLK 0021 T1CHAR 0215 UPC 0003 ZBREAK 0122 T1ESCP 0233 USC 0002 ZCNT 0007 T1FILL 0010 USESY1 0001 ZDISPA 0123 T1TCBP 4034 USESY4 0001 ZEROMS 7074 T2BACK 0210 USESY5 0001 ZFSTEX 0040 T2CHAR 0000 USESY6 0001 ZHRDIN 0121 T2ESCP 0233 USESY7 0001 ZLENG 0002 T2FILL 0000 USLOT 0062 ZMYCDF 0034 T3BACK 0210 USR 7700 ZMYCDI 0036 T3CHAR 0000 USRIN 0010 ZMYCIF 0035 T3ESCP 0233 USROUT 0011 ZNAME 0001 T3FILL 0000 USTAT 0000 ZNUM 0023 T4BACK 0210 USW 0007 ZSOFIN 0037 T4CHAR 0000 USYS1 2631 ZTEM1 0021 T4ESCP 0233 USYS2 2631 ZTEM2 0022 T4FILL 0000 USYS3 2631 ZTEM3 0023 T5BACK 0210 USYS4 2631 ZTEM4 0024 T5CHAR 0000 USYS5 2631 ZTEM5 0025 T5ESCP 0233 USYS6 2631 ZTEM6 0026 T5FILL 0000 USYS7 2631 ZTEM7 0027 T6BACK 0210 UTEMP 0010 ZWC 0003 T6CHAR 0000 UTEM2 0011 T6ESCP 0233 UTTY 0060 T6FILL 0000 UWRTR 0033 T7BACK 0210 VERSHI 0267 T7CHAR 0000 VERSLO 0302 T7ESCP 0233 WAIT 0044 T7FILL 0000 WAIT0 0677 UAC 0005 WAIT1 0725 UACCNT 0063 WAIT2 0735 UASEM 0015 WAIT3 0736 UASNAM 1136 X 0020 ERRORS DETECTED: 0 LINKS GENERATED: 0